我试图在django python项目中启用SSO,使用Key斗篷作为身份代理,使用Microsoft AD作为身份提供者(其中Key斗篷将委托客户机的身份验证请求给AD)
应用程序的技术堆栈: 前端-反应, 后端-django python
为此,我使用django中的python Key斗篷库与Key斗篷进行通信。我能够实现的是:设置与Key斗篷的连接,并在提供用户名和密码时获取访问令牌和刷新令牌,如下所示:
# Create Keycloak instance
self.keycloak = KeycloakOpenID(server_url=self.server_url,
client_id=self.client_id,
realm_name=self.realm,
client_secret_key=self.client_secret_key)
# Get WellKnow
self.config_well_know = self.keycloak.well_know()
# Get Token
self.token = self.keycloak.token("user","pwd")
# get userinfo
self.userInfo = self.keycloak.userinfo(self.token['access_token'])
# userinfo returned ok
但在这里,我提供了用户名和密码,我不应该这样做,因为我想在Microsoft AD中启用sso(注意:Keyclope realm配置为使用Microsoft AD作为默认IDP),并且只有用户名应该足以在Microsoft中启用sso。但它只传递用户名时出错
问题: 如何使用KeyClope broker对Microsoft AD中的用户进行身份验证,以及相同的语法应该是什么
在示例领域中创建两个客户端。其中一个用于React应用程序,设置为公共客户端,您应该使用Javascript适配器生成访问令牌,您可以使用头传递该令牌,而后端Django应用程序设置为机密客户端,可以访问从前端React应用程序生成的访问令牌。使用pythonkeydape库对令牌的正确性进行内省
尝试使用OIDC/SAML在您的示例领域中设置身份代理。使用您的Azure应用程序元数据URL与相关映射程序一起设置配置文件
完成此设置后,您应该让SSO正常工作
相关问题 更多 >
编程相关推荐