我们使用OWIN中间件使用OpenId Connect将人员登录到我们的云应用程序。
问题是,我们还希望通过新的API访问他们的Office 365数据。
使用OWIN登录并不会使用CODE将我们返回到我们的网站,因此使用ADAL我们会立即将它们发回给同意,然后获取我们的令牌等等......
我们可以一举做到吗?
以下是Fiddler所说的OWIN用于验证的内容:
https://login.windows.net/common/oauth2/
authorize?
client_id=ourguid
&nonce=random characters
&response_mode=form_post
&response_type=code+id_token
&scope=openid+profile
&state=OpenIdConnect.AuthenticationProperties*more random characters*
&redirect_uri=http%3a%2f%2flocalhost%3a8683
&post_logout_redirect_uri=http%3a%2f%2flocalhost%3a8683
我在查询字符串中看到了代码+ id_token,但是当它发回给我时,URL中根本没有任何内容。
答案 0 :(得分:1)
您可以通过我们的OWIN组件在OpenId Connect中单手执行所有操作,当您获得代码并且可以处理以兑换该代码时,会触发特定通知。 请参阅https://github.com/AzureADSamples/WebApp-WebAPI-OpenIDConnect-DotNet上的示例,特别是Startup.auth.cs,以了解其工作原理。 注意:我们刚刚发布的RC将使代码更简单。我仍在努力更新样本以解决问题,您可以查看RCUpdate分支以查看正在进行的工作。但是主分支中的功能是有用的,因此应该解锁您。 HTH! 干杯, 诉