Mar*_*rko 5 openid oauth azure amazon-web-services azure-ad-b2c
我正在将Azure B2C与AWS集成,即通过Azure B2C作为联合身份提供者设置AWS Cognito,并将其用于移动应用程序的登录目的。
在大多数情况下,我相信我已经正确配置了所有内容。这是我到目前为止所做的
MSALPublicClientApplication.init(clientId, kAuthority)后跟的方法acquireToken。AWSCognitoCredentialsProvider使用在步骤3中创建的Cognito身份池和自定义的identityProviderManager进行设置,该类是我根据AWS文档实现了getToken和logins方法的类。经过一番来回的努力,我设法克服了这一过程中的大部分障碍,但是现在我从AWS那里收到了令牌验证错误,特别是:
错误:错误Domain = com.amazonaws.AWSCognitoIdentityErrorDomain代码= 8“(null)” UserInfo = {__ type = NotAuthorizedException,消息=无效的登录令牌。无法验证已签名的令牌。}
谷歌搜索该错误确实不会产生大量结果,但是据我所知,应用程序中的事件顺序是正确的,但是AWS在与Azure通信时抱怨令牌的验证。
AWS中没有太多可配置的身份提供程序,例如机密,作用域或任何其他内容,因此我不确定在哪里查看。
我希望对于经验丰富的OpenID专业人士而言,此错误消息对我而言意味着更多。
我不确定的某些事情可能是相关的。1.在我当前未使用的应用程序下,Azure B2C具有“键”的概念,因为在实现中没有地方可以指定各种键。2.该MSALPublicClientApplication.init方法返回一个我随后用来调用的应用程序实例application.acquireToken(forScopes: kScopes)。我不知道该为作用域值添加什么,因为从我读到的内容来看,我只需要“ openid”和“ offline_access”,但是当我尝试指定这些值时,我收到一个错误,即默认情况下已经包含了它们并且可以在我的API调用中指定它们。但是,不允许将此字段留空,因此目前我不确定我是否正确的Azure B2C应用程序ID(以GUID的形式)。
多谢您的协助!
您的设置看起来正确。不确定 MSAL 库,但直接从 Azure B2C 控制台进行测试时,您会获得不同的令牌,具体取决于您是否在授权 URl 中提及您的登录策略(使用“p”参数)。没有这个参数的可以工作,但是有这个参数的不行。与 OIDC Discovery 的工作原理及其在 AWS IAM 控制台中的配置方式有关。
| 归档时间: |
|
| 查看次数: |
767 次 |
| 最近记录: |