Android アプリケーションから ID サーバーを呼び出そうとすると問題が発生します。問題は、C# ベースのアプリ以外から IdSrv を呼び出す方法を探したところ、JS から呼び出す方法の例しか見つからなかったことです。したがって、これが JS からの呼び出し方法です。
function HttpBasicClient(uid, pwd) {
this.scheme = "Basic";
this.token = Base64.encode(uid + ":" + pwd);
}
HttpBasicClient.prototype.get = function (url) {
var scheme = this.scheme;
var token = this.token;
var settings = {
type: "GET",
url: url,
beforeSend: function (xhr) {
xhr.setRequestHeader("Authorization", scheme + " " + token);
}
};
そして、これは私の Android への翻訳です。
HttpClient client = getCustomHttpClient();
HttpResponse response;
String scheme = "Basic";
String token = Base64.encodeToString((username+":"+password).getBytes(), 0);
try{
HttpGet get = new HttpGet("https://url/issue/wstrust/mixed/username");
get.setHeader("Authorization", scheme + " " + token);
response = client.execute(get);
StatusLine sLine = response.getStatusLine();
int statusCode = sLine.getStatusCode();
すべての種類の証明書を受け入れるカスタム HttpClient を使用しているため、SSL は問題になりません。問題は、呼び出しが行われるHttp 400
と、要求が不正であることが通知されるということです。私の質問は、Identity Server がそれを受け入れてトークンを返すために、Identity Server への呼び出しをどのように正確に行う必要があるかを知っている人はいますか?