全部产品
Search
文档中心

Data Management:Akses bebas login ke konsol DMS

更新时间:Jul 06, 2025

Anda dapat menyematkan URL bebas login ke konsol Data Management (DMS) di platform R&D atau alat Anda. Dengan cara ini, Anda dapat mengakses konsol DMS dan menggunakan fitur-fiturnya tanpa harus masuk dengan akun Alibaba Cloud atau sebagai Pengguna Resource Access Management (RAM). Topik ini menjelaskan cara membuat URL bebas login ke konsol DMS.

Prosedur

  1. Buat Peran RAM yang digunakan untuk mengakses DMS dan berikan izin kepada peran tersebut. Kemudian, buat Pengguna RAM dan berikan izin AliyunSTSAssumeRoleAccess kepada pengguna tersebut. Untuk informasi lebih lanjut, lihat Persiapan.

  2. Dapatkan kredensial identitas sementara untuk peran yang diasumsikan, termasuk ID AccessKey, Rahasia AccessKey, dan token keamanan. Kredensial ini digunakan untuk mendapatkan SigninToken. Untuk informasi lebih lanjut, lihat Langkah 1: Dapatkan Kredensial Identitas Sementara untuk Peran yang Diasumsikan.

  3. Dapatkan SigninToken yang digunakan untuk membuat URL bebas login. Untuk informasi lebih lanjut, lihat Langkah 2: Dapatkan SigninToken.

  4. Buat URL bebas login. Untuk informasi lebih lanjut, lihat Langkah 3: Buat URL Bebas Login ke Konsol DMS.

Contoh berikut menunjukkan kode Java contoh:

 /*
  Buat Pengguna RAM dan berikan izin kepada pengguna.
 */
  String accountId = "Akun Alibaba Cloud";
 // Peran yang digunakan untuk mengakses DMS. Anda dapat memberikan izin AliyunDMSReadOnlyAccess dan AliyunDMSFullAccess kepada peran ini sesuai kebutuhan.
  String ramRole = "Peran RAM yang telah Anda buat";
 // ID AccessKey dan Rahasia AccessKey untuk Pengguna RAM serta izin AliyunSTSAssumeRoleAccess diperlukan.
  String accessKeyId = "";
  String accessKeySecret = "";
 /*
  Langkah 1: Panggil operasi AssumeRole untuk mendapatkan ID AccessKey sementara, Rahasia AccessKey, dan token keamanan.
 */
  AssumeRoleResponse.Credentials credentials = assumeRole(accountId, accessKeyId, accessKeySecret, ramRole);
  System.out.println("Kedaluwarsa: " + credentials.getExpiration());
  System.out.println("ID Access Key: " + credentials.getAccessKeyId());
  System.out.println("Rahasia Access Key: " + credentials.getAccessKeySecret());
  System.out.println("Token Keamanan: " + credentials.getSecurityToken());

  /*
  Langkah 2: Dapatkan SigninToken.
  */
  String signInToken = getSignInToken(credentials.getAccessKeyId(),
  credentials.getAccessKeySecret(),
  credentials.getSecurityToken());
  System.out.println("SigninToken Anda adalah: " + signInToken);

 /*
  Langkah 3: Buat URL bebas login. URL ke halaman utama konsol DMS digunakan dalam contoh ini.
 */
  String pageUrl = getDmsLoginUrl("https://dms.aliyun.com", signInToken);
  System.out.println("PageUrl Anda adalah : " + pageUrl);

Persiapan

Catatan

Jika Anda telah memenuhi semua kondisi berikut, lakukan langkah 1, 2, dan 3 di bawah ini.

Langkah 1: Dapatkan kredensial identitas sementara untuk peran yang Anda asumsikan

Panggil operasi AssumeRole sebagai Pengguna RAM atau Peran RAM untuk mendapatkan kredensial identitas sementara untuk peran yang diasumsikan. Untuk informasi lebih lanjut tentang operasi AssumeRole, lihat AssumeRole.

Contoh berikut menunjukkan kode Java contoh:

    /**
     * Panggil operasi AssumeRole untuk mendapatkan kredensial identitas sementara untuk pengguna
     *
     * @param accountId
     * @param accessKeyId
     * @param accessKeySecret
     * @param ramRole
     * @return
     * @throws ClientException
     */
    private static AssumeRoleResponse.Credentials assumeRole(String accountId, String accessKeyId,
                                                             String accessKeySecret, String ramRole)
        throws ClientException {
        String defaultRegion = "cn-hangzhou";
        IClientProfile profile = DefaultProfile.getProfile(defaultRegion, accessKeyId, accessKeySecret);
        DefaultAcsClient client = new DefaultAcsClient(profile);
        AssumeRoleRequest request = new AssumeRoleRequest();
        // Nama Sumber Daya Alibaba Cloud (ARN) adalah pengenal sumber daya unik global dari Peran RAM.
        request.setRoleArn(getRoleArn(accountId, ramRole));
        // Parameter yang ditentukan pengguna. Anda dapat mengaudit akses pengguna yang menggunakan token keamanan berbeda berdasarkan nilai parameter ini. Format nilai adalah ^[a-zA-Z0-9\.@\-_]+$.
        request.setRoleSessionName("session-name");
        // Periode validitas yang ditentukan. Unit: detik. Nilai valid: 900 hingga 3600. Nilai default: 3600.
        request.setDurationSeconds(3600L);
        AssumeRoleResponse response = client.getAcsResponse(request);
        return response.getCredentials();

    }

Langkah 2: Dapatkan SigninToken

Panggil operasi GetSigninToken untuk mendapatkan SigninToken.

Contoh berikut menunjukkan kode Java contoh:

  /**
     * Gunakan token keamanan untuk mendapatkan SigninToken.
     *
     * @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(SIGN_IN_DOMAIN);

        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;
    }

Langkah 3: Buat URL bebas login ke konsol DMS

Catatan

SigninToken yang diperoleh hanya dapat digunakan sekali untuk membuat URL bebas login. Jika Anda perlu menggunakan SigninToken lagi, Anda harus mendapatkan SigninToken baru.

Contoh berikut menunjukkan kode Java contoh:

Permintaan contoh:

    private static String getDmsLoginUrl(String pageUrl, String signInToken) throws URISyntaxException {
        URIBuilder builder = new URIBuilder(SIGN_IN_DOMAIN);
        builder.setParameter("Action", "Login");
        // Tentukan URL login di situs web mandiri yang dikonfigurasi untuk mengembalikan kode status HTTP 302 untuk mengarahkan ke halaman lain.
        builder.setParameter("LoginUrl", "https://signin.aliyun.com/login.htm");
        // Halaman DMS yang akan diakses sebenarnya.
        builder.setParameter("Destination", pageUrl);
        builder.setParameter("SigninToken", signInToken);
        HttpGet request = new HttpGet(builder.build());
        return request.getURI().toString();
    }

Tanggapan contoh:

Kedaluwarsa: 2020-11-30T06:16:20Z
ID Access Key: STS.NT7L6Jp5Y8W9LNvGQku2x****
Rahasia Access Key: 4nU8F6rv8MCDR8tygMDnXvN9yCNBCVrxnqArj1n1****
Token Keamanan: CAIS/gF1q6Ft5B2yfSjIr5e****+nep4j5XSTmjHo1E+eb1Ujo7xijz2IH9IeXhpB****/43nWlU7PkYlrloRoReREvCKM1565kSqFn6O11Qf****+5qsoasPETOITyZtZagToeUZdfZfejXGDKgvyRvwLz****/Vli+S/OggoJmadJlNWvRL0AxZrFsKxBltdUROF****+pKWSKuGfLC1dysQcO4gEWq4bHm5zAs0OH1QOhlrVP+N+qfqLJNZc8YM1NNP6ux/Fze6b71ypd1gNH7q8ejtYfpmua74jBXgUAuU3faraOrYd1SwZ9Z7knH****/n6ifBjpvw9Hlk0R9OcVhqAAXpZx****+STGa8vctRwyTWdMM5LByes3cr1D46jaj0****/lTMkoXCwjMlCs7sc+DA9xjJCcl57eKC7A3ThnJAWQyyeKZfIGgeHN7yUS5ND8r7TBn6bMUqwvfVX****/cbkzBX6iV6jrataHZPZdtQYHH6GgvQ5XZUZJjoD****
SigninToken Anda adalah: 06ec409b9d8c48f6ac5dcd18a0513ee1dhUkhcRn5CMsDqffC4wxsuFt9xjYtYePmYTHEWSMVKLFyXXnSq3IUbon1v46wCmKPwrAejDvw2i8rilolPSuxpKRDxz****
PageUrl Anda adalah : http://signin.aliyun.com/federation?Action=Login&LoginUrl=https%3A%2F%2Fsignin.aliyun.com%2Flogin.htm&Destination=https%3A%2F%2Fdms.aliyun.com&SigninToken=06ec409b9d8c48f6ac5dcd18a0513ee1dhUkhcRn5CMsDqffC4wxsuFt9xjYtYePmYTHEWSMVKLFyXXnSq3IUbon1v46wCmKPwrAejDvw2i8rilolPSuxpKRDxzD****

Contoh berikut menunjukkan format URL bebas login (PageUrl):

http://signin.aliyun.com/federation?Action=Login
                            &LoginUrl=<URL login di situs web mandiri yang dikonfigurasi untuk mengembalikan kode status HTTP 302 untuk mengarahkan ke halaman lain>
                            &Destination=<Halaman DMS yang akan diakses sebenarnya>
                            &SigninToken=<SigninToken yang diperoleh>
Catatan

Halaman DMS yang ditentukan oleh Destination terkait dengan parameter TicketType.

  • Jika parameter TicketType disetel ke normal, nama domain DMS yang sesuai adalah http://dms.aliyun.com.

  • Jika parameter TicketType disetel ke mini, umumnya berlaku untuk operator jaringan virtual BID. Nama domain berikut digunakan:

    • http://dms-jst4service.aliyun.com

    • http://dms-Itwo4service.aliyun.com

Apa yang harus dilakukan selanjutnya

Gunakan URL bebas login (PageUrl) yang dibuat untuk mengakses konsol DMS.