Mik*_*nen 9 http oauth windows-live-id onedrive
使用OAuth,ClientID和redirect_url具有强大的连接:每个redirect_url都需要一个单独的ClientID.对于在多个域中具有多个部署的内部部署应用程序而言,这是一个问题.
有没有办法从未知域实施OAuth身份验证?我可以提出的唯一替代方案是在固定域上需要专用的"身份验证服务器",可以将其用作redirect_url,然后可以执行新的,不受限制的重定向到客户域.
桌面应用程序通过提供虚拟redirect_url然后在专用Web框架中托管实时身份验证窗口来解决此问题,该框架允许他们监听重定向请求.这允许他们从重定向URL读取授权代码,即使URL本身无效.我认为由于跨域限制,这在Web浏览器中是不可能的.
在本地Web应用程序中支持SkyDrive发布本质上需要OAuth.
RFC 6749 (OAuth 2.0) 规定授权服务器必须要求为公共客户端预先注册redirect_uri ,但不要求为机密客户端预先注册,只要它们不使用隐式授权即可。根据您在安装时提供客户端凭据还是系统管理员输入他们自己的客户端凭据,您的系统最终将分为不同的类别。然而,RFC 建议始终需要预先注册的redirect_uri,因此您很可能会在任一分类中遇到相同的问题。
我想说,对您来说唯一可行的解决方案是要求系统的系统管理员在配置系统时提供自己的客户端凭据。如果他们提供自己的客户端凭据,他们还需要向授权服务器注册自己的redirect_uri,从而解决问题。
您不应该实现中间身份验证服务器,因为这会破坏应用程序的安全性。如果用户授权对您的系统进行一次安装,他们将自动授权所有安装,这反过来又可以使他们的个人数据可供除他们授权的组织之外的其他组织使用。