oshco/adfs
Composer 安装命令:
composer require oshco/adfs
包简介
Library to provide ADFS integration for WebFiori based applications.
README 文档
README
A PHP library that provides ADFS (Active Directory Federation Services) single sign-on integration for WebFiori based applications using SAML 2.0.
Requirements
- PHP 8.1 or later
- WebFiori HTTP 5.0+
- WebFiori UI 4.0+
- WebFiori File 2.0+
- WebFiori JsonX 4.0+
Installation
composer require oshco/adfs
How It Works
- Your application builds a SAML request using
SAMLRequestand redirects the user to the ADFS server. - The user authenticates on the ADFS login page.
- ADFS posts a SAML response back to your application's callback endpoint.
- Your
ADFSVerificationServicesubclass parses the response, looks up the user, and handles success or failure.
Classes
| Class / Interface | Description |
|---|---|
ADFSUser |
Interface representing an authenticated user. Requires getId(). |
SAMLRequest |
Builds a SAML 2.0 authentication request. Supports XML generation and base64+deflate encoding for HTTP-Redirect binding. |
ADFSResponse |
Parses a base64-encoded SAML response from ADFS. Extracts success/failure status, username, and application name. |
ADFSVerificationService |
Abstract web service that acts as the ADFS callback endpoint. Subclass it to implement getUser() and onSuccess(). |
Usage
1. Implement the ADFSUser interface
use Oshco\Adfs\ADFSUser; class AppUser implements ADFSUser { private int $id; private string $email; public function __construct(int $id, string $email) { $this->id = $id; $this->email = $email; } public function getId() { return $this->id; } }
2. Build and send a SAML request
use Oshco\Adfs\SAMLRequest; $request = new SAMLRequest(); $request->setDestination('https://adfs.example.com/adfs/ls'); $request->setAppID('My Application'); $request->setAppURL('https://myapp.example.com'); $request->setIssueInstant(gmdate('Y-m-d\TH:i:s\Z')); $encoded = $request->encode(); // Redirect user to ADFS with the encoded SAML request header('Location: https://adfs.example.com/adfs/ls?SAMLRequest=' . urlencode($encoded));
3. Create a verification service
Extend ADFSVerificationService and implement the two abstract methods:
use Oshco\Adfs\ADFSUser; use Oshco\Adfs\ADFSVerificationService; class MyVerificationService extends ADFSVerificationService { public function __construct() { parent::__construct('adfs-verify', 'https://myapp.example.com/login-failed'); } public function getUser(string $username): ?ADFSUser { // Look up the user in your database by username/email // Return an ADFSUser instance or null if not found } public function onSuccess(ADFSUser $user) { // User authenticated successfully // Set session, redirect to dashboard, etc. } }
When ADFS posts back to your endpoint, the service will:
- Parse the SAML response
- Call
getUser()with the authenticated username - Call
onSuccess()if the user is found, oronFail()if not (redirects to the fail URL with a?status=parameter)
4. Inspect the SAML response
use Oshco\Adfs\ADFSResponse; $response = new ADFSResponse($_POST['SAMLResponse']); $response->isSuccess(); // true if ADFS authentication succeeded $response->getUserName(); // authenticated username (lowercased) $response->getAppName(); // application name from ADFS $response->getXMLString(); // raw XML of the SAML response $response->storeResponse(); // save response to file for debugging
Running Tests
composer test
Maintainer
- Ibrahim BinAlshikh (i.binalshikh@oshco.com)
License
This library is licensed under the MIT License.
Copyright (c) 2023 Olayan Saudi Holding Company (OSHCO)
oshco/adfs 适用场景与选型建议
oshco/adfs 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 1.59k 次下载、GitHub Stars 达 0, 最近一次更新时间为 2023 年 10 月 17 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「api」 「adfs」 「webfiori」 「Web APIs」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 oshco/adfs 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 oshco/adfs 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 oshco/adfs 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Basic collections set used by WebFiori.
A library that provides basic utilities for creating HTML documents.
WebFiori framework. Made to make the web bloom.
A simple library to validate and decode Microsoft Azure Active Directory (Azure AD), Microsoft Active Directory Federation Services (ADFS) JSON Web Tokens (JWT) in PHP, conforming to RFC 7519
A PSR-7 compatible library for making CRUD API endpoints
A base theme which holds basic structure for building Vuetify based themes.
统计信息
- 总下载量: 1.59k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 22
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2023-10-17