私はクライアント認証のためにOAuth2サーバーとしてAzure ADを使用するSpring-BOOTベースのRESTサービスを実装しようとしています。Azure Active DirectoryをSpringブートRESTサービスのOAUTH2認証サービスとして使用する
- モバイルネイティブアプリのバックエンドとして私のサービスのためのクライアントとして
- 休憩サービスを使用している: は、私は2つのapplicatonsを登録しました。
バックエンドアプリケーションに対するすべてのリクエストは、OAuth2フローを使用してAzure AD によって認証される必要があります。私はカール使用しているモバイルアプリの実装として
:ベアラトークンを得るため
を私が$ USER_NAMEと$ PASSWORDは、AzureのADユーザーのcredetialsあるhttps://login.microsoftonline.com/TENANT_ID/oauth2/token
curl -s -X POST https://login.microsoftonline.com/<TENANT_ID>/oauth2/token -d grant_type=password -d username=$USER_NAME -d password=$PASSWORD -d resource=$RESOURCE_ID -d client_id=$CLIENT_ID
、$を使用RESOURCE_IDは自分のRESTサービスのSIDで、$ CLIENT_IDはRESTサーバーのモバイルクライアントのSIDです。
Azureはトークンデータを含むJSONを正常に返します。
@Configuration
@EnableResourceServer
public class OAuth2Config extends ResourceServerConfigurerAdapter {
@Bean
ResourceServerTokenServices resourceTokenServices() {
RemoteTokenServices tokenServices = new RemoteTokenServices();
tokenServices.setClientId(resourceId);
tokenServices.setClientSecret(/*I do not have it*/resourcePassword);
tokenServices.setCheckTokenEndpointUrl(/*I do not have it*/checkToken);
return tokenServices;
}
@Override
public void configure(ResourceServerSecurityConfigurer resources) throws Exception {
resources.tokenServices(resourceTokenServices());
resources.resourceId("rest_api");
}
@Override
public void configure(HttpSecurity http) throws Exception {
http.authorizeRequests().antMatchers("/**").authenticated();
}
}
マイRESTコントローラ:バックエンドアプリケーションのための
私のOAuth2 Configが
@RestController
@RequestMapping("/data")
public class CustomerRestController {
@RequestMapping(method = RequestMethod.GET)
public SomeData getMyData(Principal principal){
System.out.println("RESOURCE WAS REQUESTED BY " + principal.getName());
return new SomeData(principal.getName());
}
}
しかし、私は、エンドポイントのリストには私のRESTサービスで使用できる任意のURLを見つけられませんでしたベアラトークンをチェックし、Azure ADからユーザデータを取得する。 また、理解しているとおり、Azure ADを使用するためのRESTサービスの資格証明が必要です
どのようにして必要な値を見つけることができますか、間違っていますか?
サンプルにJavaコードがありますか? –
@ShaunLuttinはい、それはJavaコード – Serg
です。この文書は、https://azure.microsoft.com/en-us/documentation/articles/active-directory-authentication-scenarios/ –