I am in the process of converting multiple traditional webparts to provider hosted apps to make them compatible for sharepoint online. Can I create client id and client secret only once for production SP online environment and reuse them across all apps or do I need to create a separate for each?

2 Answers 2


You need create client id and client secret for each add-in(app) as it's add-in identity just like user account, can't be reuse.


When you generate a client id/secret, you must specify the domain that the app will be on, and you can only specify a single domain. When you generate the id/secret, Service Principal gets created on the azure tenant, with the client id and the client id/domain as service principal names.

For example, with an id of 123e4567-e89b-12d3-a456-426655440000, and a domain of contoso.com, the following would be the service principal names:


These must be unique across all service principal, which means you cannot have two apps with the same client id.

You can, however, have an app use any id/secret. But, if the domain does not match the one the id is registered to, users will receive a warning when they navigate to the app (though they can proceed through it).

I wrote an answer here on generating ids/secrets through PowerShell, if you're interested, and I have a few scripts for retrieving/updating secrets as well.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.