加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Azure B2C与AWS Cognito联合身份的集成

发布时间:2020-12-16 06:54:15 所属栏目:百科 来源:网络整理
导读:我是将Azure B2C与AWS集成的过程,即将AWS Cognito与Azure B2C一起设置为联合身份提供程序,并将其用于移动应用程序的登录目的. 在大多数情况下,我相信我已经正确配置了一切.这就是我到目前为止所做的 我创建了一个B2C租户并在租户中设置了一个“应用程序”以
我是将Azure B2C与AWS集成的过程,即将AWS Cognito与Azure B2C一起设置为联合身份提供程序,并将其用于移动应用程序的登录目的.

在大多数情况下,我相信我已经正确配置了一切.这就是我到目前为止所做的

>我创建了一个B2C租户并在租户中设置了一个“应用程序”以及一个SignUpAndSignInPolicy.应用程序启用了本机和Web客户端,并且还允许隐式流.
>我已将Azure B2C租户配置为AWS中的身份提供商,并为IdP创建了必要的角色.
>我已创建AWS Cognito Identity Pool并将其配置为使用上述IdP
>我正在使用MSAL库对Azure B2C进行身份验证,特别是MSALPublicClientApplication.init(clientId,kAuthority)方法,后跟acquireToken.
>这将在浏览器中显示交互式登录,并通过自定义URL将令牌返回给应用程序.令牌有效,我已经用JWT tool验证了它.
>然后,我使用在步骤3中创建的Cognito Identity Pool和自定义identityProviderManager设置AWSCognitoCredentialsProvider,该类是我根据AWS文档实现getToken和logins方法的类.
>然后我通过logins方法中的“return AWSTask([”providerName:“id_token”]语句将令牌从步骤5传递到Cognito.

经过大量的反复尝试后,我已经设法完成了大部分障碍,但是我现在从AWS获得了令牌验证错误,具体来说:

error: Error Domain=com.amazonaws.AWSCognitoIdentityErrorDomain Code=8
“(null)” UserInfo={__type=NotAuthorizedException,message=Invalid
login token. Couldn’t verify signed token.}

谷歌搜索该错误确实不会产生大量的结果,但从我可以看出,应用程序中的事件序列是正确的,但AWS在与Azure通信时抱怨令牌的验证.

AWS中没有很多可以配置身份提供程序的内容,例如机密,范围或任何内容,因此我不确定在哪里查看.

我希望对于经验丰富的OpenID专业人员来说,这个错误信息对我来说意味着更多.

我不确定的一些事情可能是相关的.
1. Azure B2C在我目前没有使用的应用程序下有一个“Keys”的概念,因为我无法在我的实现中指定各种键.
2. MSALPublicClientApplication.init方法返回一个应用程序实例,然后我用它来调用application.acquireToken(forScopes:kScopes).我不知道要为scopes值添加什么,因为根据我的阅读,我只需要“openid”和“offline_access”,但是当我尝试指定那些时,我得到一个错误,它已经默认包含在内并且我可以在我的API调用中指定它们.但是,我不允许将此字段留空,所以目前我有Azure B2C应用程序ID(以GUID的形式),我不确定是否正确.

非常感谢您的帮助!

解决方法

您的设置看起来正确.不确定MSAL库但是直接从Azure B2C控制台进行测试时,根据您是否在授权URl中提到了您的登录策略(使用’p’参数),您会得到不同的令牌.没有这个参数的那个可以工作但是带有它的那个没有.与OIDC Discovery的工作方式及其在AWS IAM控制台中的配置方式有关.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读