0

SP Web サービスを使用する Java/j2ee Web アプリケーションがありますが、最近 SP サイトが 2013 に移行され、クラウド/オフィス 0365 にデプロイされたため、認証が壊れました。SP の人々は、認証メカニズムを SAML トークン ベースの認証に変更し、Microsoft Azure AD を使用することを提案しました。そのため、アプリケーションを Azure にオンボードし、セキュリティ トークン (adal4j J​​ava API を使用) を生成できるクライアント ID、機関を受け取りました。Office 0365 で SP 2013 Web サービスにアクセスするための認証プロセスを完了するには、以下の 2 つの手順を完了する必要があります。

  1. アクセス トークンの Cookie を取得する
  2. リクエスト ダイジェスト トークンを取得する

ただし、上記の 2 つの手順で Java ベースの API を見つけることができません。以下のチュートリアルを参照しましたが、aps/.net に関連するものです。

http://paulryan.com.au/2014/spo-remote-authentication-rest/

同じサンプルコードベースを提供するのを手伝ってください。

あなたの支援に感謝

4

2 に答える 2

0

私の経験によれば、参照された記事を順を追って直接たどって、Apache HttpClientを使用してリクエストを構築することができると思います。

たとえば、以下のコードは を使用しHttpClientて、xml 本文でポスト リクエストを実行し、セキュリティ トークンを取得しています。

CloseableHttpClient httpclient = HttpClients.createDefault();
HttpPost httpPost = new HttpPost("https://login.microsoftonline.com/extSTS.srf");
String xmlBody = "...";
InputStreamEntity reqEntity = new InputStreamEntity(
                    new ByteArrayInputStream(xmlBody.getBytes(), -1, ContentType.APPLICATION_OCTET_STREAM);
            reqEntity.setChunked(true);
httpPost.addHeader("Accept", "application/json; odata=verbose")
httpPost.setEntity(reqEntity);
CloseableHttpResponse response = httpclient.execute(httppost);
String respXmlBody = EntityUtils.toString(response.getEntity());
//Parse the respXmlBody and extract the security token

上記のコードに従って、 url のセキュリティ トークン本文を使用してポスト リクエストを実行し、アクセス トークンとしてヘッダー配列を取得するhttps://yourdomain.sharepoint.com/_forms/default.aspx?wa=wsignin1.0コードを使用して、アクセス トークンを含む応答を取得することができます。Header[] hs = response.getHeaders("Set-Cookie");Set-Cookie

次に、それらを使用しCookieて、要求ダイジェスト トークンを取得するための 2 つのヘッダーを設定し、応答本文を解析してFormDigestValue、要求ダイジェスト トークンとして抽出します。

于 2016-03-17T09:19:22.293 に答える
0

Java 用の Microsoft Azure Active Directory Authentication Library (ADAL) を使用しましたか?

その場合は、AAD Java サンプルをご覧ください。

Web API を使用するものが必要です。

于 2016-03-16T19:10:50.227 に答える