Rest 使用Azure Active Directory和Symfony进行SCIM端点和用户配置
我正在开发一个SCIM端点API,以支持在我的symfony v5应用程序和Azure AD之间自动配置用户。 事实上,我没有找到足够的文档来帮助我开发它,而且我不是专家,但我遵循了docs.microsoft的一些指导原则。 我首先构建一个symfony REST API CRUD,而不使用任何捆绑包,我的所有端点都由/Users开始 然后,我在远程站点PLESK上托管了我的应用程序,并使用以下url: 现在我想将我的SCIM端点与Azure AD SCIM客户端集成。在租户URL字段中,我放置了以下URL: 但是我收到了这个错误,谁能解释一下我做的是对的吗?为什么我会收到这个错误 您似乎输入了无效的凭据。请确认您是 为管理帐户使用正确的信息。错误 代码: SystemForCrossDomainIdentityManagementCredentialValidation不可用 详细信息:我们从您的应用程序收到此意外响应: 返回了HTTP/404 Not Found响应,而不是预期的响应 HTTP/200OK响应。要解决此问题,请确保承租人 URL是正确的。租户URL的格式通常如下所示: https:///scim. 如果这不能解决问题,请联系 应用程序开发人员确保其SCIM端点符合 协议 这是我的API控制器类示例创建用户:Rest 使用Azure Active Directory和Symfony进行SCIM端点和用户配置,rest,symfony,azure-active-directory,provisioning,scim,Rest,Symfony,Azure Active Directory,Provisioning,Scim,我正在开发一个SCIM端点API,以支持在我的symfony v5应用程序和Azure AD之间自动配置用户。 事实上,我没有找到足够的文档来帮助我开发它,而且我不是专家,但我遵循了docs.microsoft的一些指导原则。 我首先构建一个symfony REST API CRUD,而不使用任何捆绑包,我的所有端点都由/Users开始 然后,我在远程站点PLESK上托管了我的应用程序,并使用以下url: 现在我想将我的SCIM端点与Azure AD SCIM客户端集成。在租户URL字段中,我放
class APIController extends AbstractController
{
//Create User
/**
* @Route("/Users", name="ajout", methods={"POST"})
*/
public function addUser(Request $request){
//On verifie si on a une requette
// On vérifie si la requête est une requête Ajax
//if($request->isXmlHttpRequest()) {
// On instancie un nouvel article
$user = new User();
// On décode les données envoyées
$donnees = json_decode($request->getContent());
// On hydrate l'objet
$user->setEmail($donnees->email);
$user->setRoles($donnees->roles);
// On sauvegarde en base
$entityManager = $this->getDoctrine()->getManager();
$entityManager->persist($user);
$entityManager->flush();
// On retourne la confirmation
return new Response('ok', 201);
}
//return new Response('Failed', 404); }
}
网址https://example.com/scim 将不起作用,因为您在@Route annotations中没有定义前缀scim,只有用户。网址https://example.com 而且
Azure可能需要check-GET方法——因为在SCIM文档中只有这样的方法返回200个响应代码
首先-指定SCIM中定义的所有所需路由
其次,根据文档手动使用邮递员和测试路线,或者更好地为其编写e2e测试
下一步-确保你真正的工作URL是什么
最后-在Azure测试工具中测试集成
PS.为什么API平台不基于Symfony 5?你会让一切变得更快
PS2。您可以观看一些现成的Microsoft SCIM for C参考代码,但仍然值得一读——尤其是自述文件。
另外,关于测试的wiki页面非常棒,您应该查看它,Azure广告我们希望得到这样的响应。这将允许您验证creds
{
"schemas": ["urn:ietf:params:scim:api:messages:2.0:ListResponse"],
"totalResults": 0,
"Resources": [],
"startIndex": 1,
"itemsPerPage": 20
}
根据,配置必须尝试访问其他资源以查看api支持的内容。我猜这可以归结为您的api是一个部分实现。你能交叉引用symfony应用程序日志以查看请求的资源吗?如果你是指symfony应用程序日志文件,我在再次测试后检查了它,但没有发现任何内容。但是如果你是指服务器日志,我还没有访问服务器的权限。是的,我是指应用程序日志文件,如果您配置了日志记录,则即使未找到路由,也应该记录请求。你能用浏览器访问你的应用程序吗?它是否正确设置?您应该小心,该应用程序是在启用了探查器的开发环境中配置的,任何人都可以访问它。除此之外,还有两件事。访问/Users会导致InternalServerError,2。该url与您在azure中配置的url不同,它缺少/public/part。