vendasta / sso
Vendasta SSO PHP库
Requires
- grpc/grpc: ^v1.1.0
- guzzlehttp/guzzle: ^6.3
- mdanter/ecc: ^0.5.0
Requires (Dev)
- phpunit/phpunit: ^7
README
描述
这是Vendasta官方的PHP SDK,用于集成SSO。通过此SDK提供身份提供者和服务提供者接口。
要求
- PHP 5.5及以上或PHP 7.0及以上
- PECL(可能用于安装所需的PHP扩展)
- Composer
- PHP gmp扩展
- 可选(但推荐):PHP grpc扩展
安装
安装上述要求,然后
composer require vendasta/sso
身份验证
要验证您的SDK调用,您必须从Vendasta平台内部配置一个服务帐户。
此功能目前处于alpha阶段,因此您的服务帐户凭据文件将手动提供给您。
您必须将此文件放在您的服务器上,并设置一个环境变量指向其路径
export VENDASTA_APPLICATION_CREDENTIALS=<path to credentials.json>
客户端初始化
强烈建议您使用单例客户端实例。每个客户端初始化都将打开自己的连接,因此使用单例将导致重用连接,节省时间和资源。
要实例化客户端
// Uncomment to use the sandbox environment, as setup for you by Vendasta // $hostname = 'sso-api-demo.vendasta-internal.com'; // $scope = 'https://sso-api-demo.vendasta-internal.com'; // Production $hostname = 'sso-api-prod.vendasta-internal.com'; $scope = 'https://sso-api-prod.vendasta-internal.com'; // Reuse this instance for all of your SDK calls $client = new Vendasta\Sso\V1\IdentityProviderClient($hostname, $scope); // For Identity Providers // $client = new Vendasta\Sso\V1\ServiceProviderClient($hostname, $scope); // For Service Providers
下一步
到此为止,您的使用取决于您是作为身份提供者还是服务提供者使用此SDK。身份提供者是替换Vendasta登录屏幕的应用程序,并提供了用户的身份验证。服务提供者是提供用户功能的应用程序,例如 Marketplace 应用程序。
身份提供者
作为身份提供者,此SDK中的函数提供方便登录/登出SSO流程。
有关更多信息,请参阅 Vendasta\Sso\V1\IdentityProviderClient 中的函数。
服务提供者
作为服务提供者,此SDK中的函数提供从身份提供者启动会话转移的功能,这被称为 服务提供者启动的SSO。
服务提供者功能尚未在此SDK中实现。如果您是服务提供者并想使用此SDK,请与服务代表联系以添加此功能。.
理解服务提供者ID和服务上下文
由Vendasta分配的 服务提供者ID,它仅是描述服务的唯一标识符。例如,RM 是分配给声誉管理的服务提供者ID。Marketplace应用程序通常具有以 MP- 开头的服务提供者ID。待办事项:向此RPC添加一个函数以列出服务提供者ID。
服务上下文稍微难以解释,但概念很简单——服务上下文描述了用户通过SSO过程尝试访问的资源。资源可以是帐户(业务)、合作伙伴(通常表示与单个帐户无关的屏幕,如用户资料屏幕)或其他几个。除非您的SSO配置仅针对即时身份和访问管理,否则您通常不需要关注服务上下文——访问检查将在SSO过程完成后进行,您只需传递上下文即可。
但是,如果您正在使用JiT IAM,您 必须 解析服务上下文并在SSO流程中作为访问检查的一部分。
待办事项:链接到一篇更深入的关于服务上下文指令的文章。
开发笔记
测试
要运行集成测试套件,您必须首先设置您的凭证环境变量,然后您可以直接从vendor文件夹中运行phpunit。
export VENDASTA_APPLICATION_CREDENTIALS=<path to credentials.json> ./vendor/bin/phpunit --bootstrap vendor/autoload.php test