我已经通过windows开发人员控制台创建了一个应用程序,并且我正在尝试使用Open ID Connect/Oauth 2.0来允许用户使用Windows Live Login登录到该应用程序。当我使用Azure AD时,它可以工作,但我必须将每个Windows Live帐户添加到我的Azure AD租户,并且我希望允许任何拥有Windows Live帐户的用户登录到我的应用。
当我使用Windows live时,我用Windows App developer console提供给我的client_id设置了我的OID RP。问题是,它一直在工作,直到我从Windows live上得到了id_token。问题是,我在ID标记中返回的client_id在我的客户端ID前有0前缀,例如,如果我在开发人员控制台中的客户端id是000001234,那么我从Windows Live返回到id_token中的client_id是0000000-00000000-0000-000001234。在这一点上,OIDC失败了(这是应该的),因为id_token中返回的client_id与请求令牌的client_id不同。
它离那里太近了,我只需要修复最后一个bug,我会做得很好。作为补充说明。通过Azure应用程序交付的客户端ID填充了0,即客户端ID似乎与Windows Live在带有前缀数字的client_id值中返回的格式相匹配。
发布于 2015-10-09 06:41:14
所以我终于找到了解决这个问题的办法。感谢mod_auth_openidc的作者Hans Zandbelt给我发来了这个链接http://blogs.technet.com/b/ad/archive/2015/08/12/azure-ad-microsoft-account-preview-sign-in-personal-and-work-accounts-using-a-single-stack.aspx。这花了点小花招,但我让它工作了。请记住,我将其与他们的预览版进行了对比,因此它可能会发生变化,但我发布了details of how to solve this on my blog
https://stackoverflow.com/questions/31419290
复制相似问题