我们正在尝试使用 IdentityServer3 构建 OAuth2 授权。
因此,我们从 nuget 下载了 Bytes 并将其与我们的数据库连接。数据库使用默认范围和 Thinktecture 自身的示例客户端进行了初始化。然后我们通过 OWIN 将 AD FS 连接为 IDP,并制作了一个简单的 ExternalUserService。
到目前为止一切正常,可以打开 IdSrv 的权限页面,显示用户名,并且到目前为止没有应用程序同意。
然后我们尝试将 Xamarin.Auth 连接到它并收到错误无法确定要登录的应用程序,并且在日志中出现错误 Signin Id not present(在 ADFS IDP 登录后)。
为了降低复杂性,我们决定回到 InMemoryUserService 并创建一个 InMemoryUser。这适用于权限页面(至少在短时间内 - 时间已经结束),但它不允许 OAuth2 授权代码流,最终一次又一次地显示登录页面。并且没有证据表明日志中有任何错误。
我们如何调试,发生了什么?有什么办法可以看到,为什么用户在登录后再次被重定向到登录页面?
--
我们通过创建一个新的空 MVC 应用程序进一步降低了复杂性,该应用程序只使用了一个简单的 InMemoryUserFactory。现在它变得有点令人困惑:一个用户能够从他的机器登录 - 其他机器(同一用户 - 因为我们只创建了一个)无法登录并一遍又一遍地提示登录。