sngular/sngulauth

用于Saml和Openid-Connect的Keycloak身份验证包

1.5 2020-10-01 12:33 UTC

This package is auto-updated.

Last update: 2024-09-29 05:22:03 UTC


README

开始之前,你需要一些参数

  • authServerUrl: keycloak身份验证url
  • realm: 为项目设置的区域名称
  • clientId: 为项目设置的应用程序id
  • clientSecret: 为项目设置的应用程序密钥
  • redirectUri: 成功提示凭证后重定向的url(此url必须在keycloak客户端配置中有效)
  • encryptionAlgorithm: 解码JWT信息的算法,默认为RS256
  • encryptionKeyString: 一行中的公钥内容(不带BEGIN PUBLIC KEY和END PUBLIC KEY),用于解密JWT并获取用户信息。

身份验证过程

src/Provider/Keycloak/Protocol/Connect类需要一个参数数组来实例化

$auth = new Connect($config);

然后你可以构建重定向用户或显示链接的身份验证url

$authUrl = $auth->getAuthorizationUrl();

用户在Keycloak登录页面上输入其凭据后,将被重定向到redirectUri参数,并带有代码。现在你可以使用这些代码从keycloak获取令牌(League\OAuth2\Client\Token\AccessToken)

$token = $auth->authByCode($_GET['code']);

现在你可以从keycloak获取资源所有者(用户数据)

$user = $auth->getResourceOwner($token);

然后解密令牌以获取令牌有效载荷

$userData = $auth->decryptResponse($token->getToken());