Как составить список пользователей из всех Identity Domains в Oracle Cloud Infrastructure?

Мне нужно получить список всех пользователей, присутствующих в моей среде Oracle Cloud, через REST API или Go SDK.

Глядя на документы REST API , документы Go SDK и документы OCI CLI , нигде, похоже, не предоставляется возможность указать Identity Domain в качестве аргумента.

oci iam user listвозвращает только набор пользователей, присутствующих в домене «по умолчанию», даже если я аутентифицируюсь как пользователь в другом домене.

Есть ли способ получить пользователей из других доменов идентификации?

3 ответа

Вот документ REST API, в котором перечислены все пользователи в домене идентификации:

https://docs.oracle.com/en/cloud/paas/iam-domains-rest-api/op-admin-v1-users-get.html

Кроме того, пожалуйста, используйте URL-адрес домена для конечной точки API? Примерно так: https://{domainUrl}/admin/v1/Users).

К сожалению, у нас есть поддержка Go SDK (или других SDK и CLI) только для ресурсов IAM, но не для Identity Domains (IDCS).

Спасибо.

Существует oci-go-sdk с пакетом идентификационного домена, который можно использовать для составления списка пользователей, связанных с доменом, связанным с определенным отсеком.

https://github.com/oracle/oci-go-sdk/blob/master/identitydomains/list_users_request_response.go

Для этого требуется URL-адрес домена и ListUserRequest. Ниже приведен пример кода.

      package oci


import (
    "context"
    "fmt"
    "github.com/oracle/oci-go-sdk/example/helpers"
    "github.com/oracle/oci-go-sdk/v65/common"
    "github.com/oracle/oci-go-sdk/v65/identitydomains"
)

 
func InitializeConfigs1() common.ConfigurationProvider {
    customerTenancyId := "**********************" // root compartment ocid
    userOCID := "********************" // user coid
    homeRegion := "us-ashburn-1". // region
    fingerprint := "******************"
    key := "-----BEGIN PRIVATE KEY-----
*******************************
----END PRIVATE KEY-----"
    cp := common.NewRawConfigurationProvider(customerTenancyId, userOCID, homeRegion, fingerprint, key, nil)
    return cp
}
 
func ListDomainUsers() {
    cp := InitializeConfigs1()
    ExampleListUsers_ListUsers_IdentityDomain(cp)
}
 
func ExampleListUsers_ListUsers_IdentityDomain(cp common.ConfigurationProvider) {
    // build the url
    //endpoint := "https://****************" // Domain url
 
    client, err := identitydomains.NewIdentityDomainsClientWithConfigurationProvider(cp, endpoint)
 
    helpers.FatalIfError(err)
 
    // List domain users
    req := identitydomains.ListUsersRequest{}
    resp, err := client.ListUsers(context.Background(), req)
 
    helpers.FatalIfError(err)
 
    fmt.Println(resp)
 
    // list domain groups
    grpReq := identitydomains.ListGroupsRequest{}
    resp1, err1 := client.ListGroups(context.Background(), grpReq)
 
    helpers.FatalIfError(err1)
 
    fmt.Println(resp1)
}

Вот документация bash для справки. https://docs.oracle.com/en-us/iaas/tools/oci-cli/3.27.0/oci_cli_docs/cmdref/identity-domains/users/list.html

https://kaamilant.com/change-oracle-cloud-username/

вы можете использовать тот же API с действием get, и он вернет список всех пользователей из одного домена идентификации. если у вас несколько доменов идентификации, вы можете разработать сценарий в почтальоне для повторения одного за другим

Другие вопросы по тегам