如何在Auth0中动态注册Machine-to-Machine类型客户端?
动态创建Machine-to-Machine类型客户端的方法
我最初在Auth0社区提出了这个问题,现在重复提问以覆盖更广泛受众
我想了解,如何在创建时将动态生成的客户端指定为Machine-to-Machine(M2M)类型,用于API调用?我的核心目标是允许开发者自行创建应用,然后按照OIDC规范,使用Client Credentials Flow访问资源服务器的信息。
目前我尝试的方法只能创建默认类型为“通用”的动态应用,比如通过以下请求:
curl --request POST \ --url 'https://<tenant>.us.auth0.com/oidc/register' \ --header 'content-type: application/json' \ --data '{"client_name":"My Dynamic Application","redirect_uris": ["https://application.example.com/callback", "https://application.example.com/callback2"] }'
但这样创建的应用默认是“Generic”类型,我希望能在创建时指定类似{ "app_type": "m2m" }的参数,直接创建M2M类型的应用,而不是手动修改已有应用。
解决方案:使用Auth0 Management API创建M2M客户端
OIDC的动态注册端点(oidc/register)并不支持直接创建M2M类型的应用,若要动态生成M2M客户端,需要使用Auth0 Management API的创建客户端端点,并指定应用类型为non_interactive(Auth0中M2M应用的标识类型)。
1. 获取Management API的访问令牌
首先需要获取具有create:clients权限的访问令牌,可通过Client Credentials Flow向Auth0的令牌端点请求:
curl --request POST \ --url 'https://<tenant>.us.auth0.com/oauth/token' \ --header 'content-type: application/json' \ --data '{ "client_id": "<你的Management API客户端ID>", "client_secret": "<你的Management API客户端密钥>", "audience": "https://<tenant>.us.auth0.com/api/v2/", "grant_type": "client_credentials" }'
2. 创建M2M类型客户端
使用获取到的访问令牌,调用Management API的创建客户端端点,指定app_type为non_interactive:
curl --request POST \ --url 'https://<tenant>.us.auth0.com/api/v2/clients' \ --header 'authorization: Bearer <你的Management API访问令牌>' \ --header 'content-type: application/json' \ --data '{ "name": "My Dynamic M2M Application", "app_type": "non_interactive", "grant_types": ["client_credentials"], "token_endpoint_auth_method": "client_secret_post" }'
3. 关联目标API(可选)
如果需要让该M2M客户端访问特定的API,还需要调用Management API的创建客户端授权端点,为客户端分配API权限:
curl --request POST \ --url 'https://<tenant>.us.auth0.com/api/v2/clients/<客户端ID>/grants' \ --header 'authorization: Bearer <你的Management API访问令牌>' \ --header 'content-type: application/json' \ --data '{ "client_id": "<客户端ID>", "audience": "<目标API的标识符>", "scope": ["read:resource", "write:resource"] }'
内容的提问来源于stack exchange,提问作者9301293
相关产品推荐
相关产品推荐

