Veri Yönetimi (DMS) konsoluna oturum açma gerektirmeyen erişim sağlamak amacıyla geliştirme veya araç platformunuza bir URL gömebilirsiniz. Bu sayede kullanıcılar, bir Alibaba Cloud hesabı veya RAM kullanıcısı olarak oturum açmadan DMS konsoluna ve özelliklerine doğrudan erişebilir. Bu konuda, oturum açma gerektirmeyen erişim için URL oluşturma işlemi açıklanmaktadır.
Yordam
DMS'e erişmek için bir RAM rolü oluşturun ve bu role izinler verin. Ardından bir RAM kullanıcısı oluşturun ve kullanıcıya
AliyunSTSAssumeRoleAccessiznini atayın. Daha fazla bilgi için bkz. Önkoşullar.Rolü üstlenerek geçici kimlik bilgileri edinin. Bu kimlik bilgileri (bir AccessKey ID, AccessKey Secret ve güvenlik belirteci), bir
SigninTokenalmak için kullanılır. Daha fazla bilgi için bkz. 1. Adım: Geçici kimlik bilgilerini alma.Oturum açma gerektirmeyen erişim URL'si oluşturmak için gerekli olan
SigninTokendeğerini alın. Daha fazla bilgi için bkz. 2. Adım: SigninToken alma.Oturum açma gerektirmeyen erişim URL'sini oluşturun. Daha fazla bilgi için bkz. 3. Adım: Oturum açma gerektirmeyen erişim URL'si oluşturma.
Önkoşullar
Aşağıdaki önkoşulların tümünü karşılıyorsanız 1. Adıma devam edebilirsiniz.
DMS'e erişmek için bir RAM rolü oluşturun. Daha fazla bilgi için bkz. Güvenilir bir Alibaba Cloud hesabı için RAM rolü oluşturma.
RAM rolüne izinler atayın. Daha fazla bilgi için bkz. RAM rolüne izin verme.
Bir RAM kullanıcısı oluşturun. Daha fazla bilgi için bkz. RAM kullanıcısı oluşturma.
RAM kullanıcısına
AliyunSTSAssumeRoleAccessiznini atayın. Daha fazla bilgi için bkz. RAM kullanıcısına izin verme.
1. Adım: Geçici kimlik bilgilerini alma
Bir RAM rolünü üstlenerek geçici kimlik bilgileri elde etmek için AssumeRole işlemini çağırın. AssumeRole işlemi hakkında daha fazla bilgi için bkz. AssumeRole.
Aşağıdaki Java kodu örnek gösterilmektedir:
/**
* Obtains temporary credentials by calling the AssumeRole operation.
*/
private static AssumeRoleResponse.AssumeRoleResponseBodyCredentials assumeRole(
String accountId, String accessKeyId,
String accessKeySecret, String ramRoleArn) throws Exception {
// Configure the STS client.
Config config = new Config()
.setAccessKeyId(accessKeyId)
.setAccessKeySecret(accessKeySecret)
// Note: The endpoint for Security Token Service (STS) is globally fixed. The sts.cn-hangzhou.aliyuncs.com endpoint is typically used.
.setEndpoint("sts.cn-hangzhou.aliyuncs.com");
Client client = new Client(config);
AssumeRoleRequest request = new AssumeRoleRequest();
// An ARN (Alibaba Cloud Resource Name) is a global resource identifier that specifies a RAM role.
request.setRoleArn(ramRoleArn);
// A custom parameter to distinguish between different tokens. This parameter can be used for user-level access auditing. Format: ^[a-zA-Z0-9\.@\-_]+$
request.setRoleSessionName("session-name");
request.setDurationSeconds(3600L); // Explicitly set the validity period in seconds.
RuntimeOptions runtime = new RuntimeOptions();
AssumeRoleResponse response = client.assumeRoleWithOptions(request, runtime);
return response.getBody().getCredentials();
}
2. Adım: SigninToken alma
Bir SigninToken almak için GetSigninToken işlemini çağırın.
Aşağıdaki Java kodu örnek gösterilmektedir:
/**
* Obtains a SigninToken by using a security token.
*
* @param accesskeyId
* @param accessKeySecret
* @param securityToken
* @return
* @throws IOException
* @throws URISyntaxException
*/
private static String getSignInToken(String accesskeyId, String accessKeySecret, String securityToken)
throws IOException, URISyntaxException {
URIBuilder builder = new URIBuilder("http://signin.alibabacloud.com/federation");
builder.setParameter("Action", "GetSigninToken")
.setParameter("AccessKeyId", accesskeyId)
.setParameter("AccessKeySecret", accessKeySecret)
.setParameter("SecurityToken", securityToken)
.setParameter("TicketType", "normal");
HttpGet request = new HttpGet(builder.build());
CloseableHttpClient httpclient = HttpClients.createDefault();
try (CloseableHttpResponse response = httpclient.execute(request)) {
if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
String context = EntityUtils.toString(response.getEntity());
JSONObject jsonObject = JSON.parseObject(context);
return jsonObject.getString("SigninToken");
} else {
System.out.println(response.getStatusLine());
}
}
return null;
}
3. Adım: Oturum açma gerektirmeyen erişim URL'si oluşturma
Her SigninToken tek kullanımlıktır. Başka bir oturum açma gerektirmeyen erişim URL'si oluşturmak için yeni bir belirteç almanız gerekir.
Aşağıdaki Java kodu örnek gösterilmektedir:
İstek örneği:
private static String getDmsLoginUrl(String pageUrl, String signInToken) throws URISyntaxException {
URIBuilder builder = new URIBuilder("http://signin.alibabacloud.com/federation");
builder.setParameter("Action", "Login");
// The URL to which the user is redirected when the session expires. This is typically a URL on your web server that is configured for a 302 redirect.
builder.setParameter("LoginUrl", "https://signin.alibabacloud.com/login.htm");
// The DMS page that the user accesses.
builder.setParameter("Destination", pageUrl);
builder.setParameter("SigninToken", signInToken);
HttpGet request = new HttpGet(builder.build());
return request.getURI().toString();
}
Yanıt örneği:
Expiration: 2020-11-30T06:16:20Z
Access Key Id: STS.NT7L6Jp5Y8W9LNvGQku2x****
Access Key Secret: 4nU8F6rv8MCDR8tygMDnXvN9yCNBCVrxnqArj1n1****
Security Token: CAIS/gF1q6Ft5B2yfSjIr5e****+nep4j5XSTmjHo1E+eb1Ujo7xijz2IH9IeXhpB****/43nWlU7PkYlrloRoReREvCKM1565kSqFn6O11Qf****+5qsoasPETOITyZtZagToeUZdfZfejXGDKgvyRvwLz****/Vli+S/OggoJmadJlNWvRL0AxZrFsKxBltdUROF****+pKWSKuGfLC1dysQcO4gEWq4bHm5zAs0OH1QOhlrVP+N+qfqLJNZc8YM1NNP6ux/Fze6b71ypd1gNH7q8ejtYfpmua74jBXgUAuU3faraOrYd1SwZ9Z7knH****/n6ifBjpvw9Hlk0R9OcVhqAAXpZx****+STGa8vctRwyTWdMM5LByes3cr1D46jaj0****/lTMkoXCwjMlCs7sc+DA9xjJCcl57eKC7A3ThnJAWQyyeKZfIGgeHN7yUS5ND8r7TBn6bMUqwvfVX****/cbkzBX6iV6jrataHZPZdtQYHH6GgvQ5XZUZJjoD****
Your SigninToken is: 06ec409b9d8c48f6ac5dcd18a0513ee1dhUkhcRn5CMsDqffC4wxsuFt9xjYtYePmYTHEWSMVKLFyXXnSq3IUbon1v46wCmKPwrAejDvw2i8rilolPSuxpKRDxz****
Your PageUrl is : http://signin.alibabacloud.com/federation?Action=Login&LoginUrl=https%3A%2F%2Fsignin.alibabacloud.com%2Flogin.htm&Destination=https%3A%2F%2Fdms.alibabacloud.com&SigninToken=06ec409b9d8c48f6ac5dcd18a0513ee1dhUkhcRn5CMsDqffC4wxsuFt9xjYtYePmYTHEWSMVKLFyXXnSq3IUbon1v46wCmKPwrAejDvw2i8rilolPSuxpKRDxzD****
Aşağıdaki örnek, oturum açma gerektirmeyen erişim URL'sinin (PageUrl) biçimini göstermektedir:
http://signin.alibabacloud.com/federation?Action=Login
&LoginUrl=<your-redirect-url-on-expiration>
&Destination=<your-target-dms-url>
&SigninToken=<your-signin-token>
Destination parametresi için kullanılan DMS sayfa URL'si, TicketType değerine bağlıdır.
Değer
normalise karşılık gelen DMS etki alanıhttp://dms.alibabacloud.comolur.Değer
miniise genellikle BID sanal operatörleri için kullanılır. Karşılık gelen etki alanıhttp://dms-ent4service.aliyun.comolur.
Sonraki adımlar
DMS konsoluna erişmek için oturum açma gerektirmeyen erişim URL'sini (PageUrl) açın. Oturum açıldıktan sonra, kullanıcı kimliği DMS konsolunun sağ üst köşesinde {RAM rol adı}/{RoleSessionName} biçiminde görüntülenir; örneğin aliyunlogintest/session-name-123.