我什至不确定这是否可能,但我无法在任何知识库、帮助或文档中找到明确的答案。
我有一个通过 ACS 保护的 WebAPI。应用程序使用服务身份通过 ACS 使用我的 WebAPI 进行身份验证以允许访问。我想做的是为服务身份提出声明以识别个人身份。例如,服务身份 A 提供类型和 ID,服务身份 B 为相同的声明类型提供不同的值,然后我的 WebAPI 可以根据声明值授权特定的调用。
目前,我通过规则组使用输出声明和通过 ACS 门户设置的声明值来实现此功能,但是该规则组适用于访问依赖应用程序(我的 WebAPI)的所有服务身份,我需要的是拥有该服务每个身份都有不同的声明值。
由于所有通信都是服务与服务之间的通信,因此我计划使用 ACS,而不是其他身份提供商,例如 Live/Microsoft 帐户或 Google。然而目前我能得出的唯一结论是实现我自己的自定义 STS 来提供声明值。
我希望我已经清楚地解释了我的场景,任何人都可以提供帮助,我如何为单个服务身份设置声明值,或者我应该以不同的方式执行此操作?
谢谢
安德鲁
最佳答案
IIRC 应用程序创建自己的 token 并使用 cert/symm key 对其进行签名 - 该 token 中的声明然后成为规则引擎中的输入...
..但是已经有一段时间了;)
关于azure - 如何向 ACS 服务身份添加声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13992383/