PowerFlex: Nastavení jednotného přihlašování PowerFlex s platformou Microsoft Azure pomocí OpenID Connect (OIDC)
Shrnutí: Tento článek vás provede konfigurací správy identit a přístupu zákazníka (CIAM) v systému PowerFlex pro jednotné přihlašování pomocí Microsoft Azure Entra ID pomocí OIDC.
Pokyny
Tento článek vás provede konfigurací správy identity a přístupu zákazníka PowerFlex (CIAM) pro jednotné přihlašování s Microsoft Azure Entra ID pomocí OIDC, včetně nastavení certifikátu, konfigurace IdP a poskytovatele služeb (SP), výměny tokenů a ověření přístupu k rozhraní API. Tato konfigurace umožňuje využívat možnosti jednotného přihlašování. Vyžaduje změny konfigurace v systému PowerFlex i Microsoft Azure.
Tento článek je určen správcům a pracovníkům zabezpečení používajícím řešení PowerFlex.
PowerFlex CIAM se integruje s IdP kompatibilními s OIDC, včetně Microsoft Azure Entra ID, a umožňuje centralizované ověřování a zabezpečený přístup k rozhraní API.
Tento článek obsahuje podrobný postup nastavení jednotného přihlašování PowerFlex pomocí systému Microsoft Azure prostřednictvím rozhraní REST API. Zde je seznam kroků na vysoké úrovni:
- Inicializace CIAM a konfigurace systému PowerFlex jako poskytovatele služeb (SP) OIDC
- Registrace Microsoft Azure Entra ID jako poskytovatele identity (IdP) OIDC
- Přidání požadovaných certifikátů certifikační autority (DigiCert/GlobalSign) do CIAM
- Konfigurace deklarací identity aplikací Microsoft Azure, identifikátorů URI přesměrování a oprávnění
- Vytvoření klientů CIAM OAuth2 a mapování výměny tokenů
- Získání tokenu Microsoft Azure, jeho výměna za token PowerFlex a ověření přístupu k rozhraní REST API
Terminologie
V následující tabulce jsou popsány důležité termíny a koncepty nutné k dokončení tohoto procesu:
| Platnost | Popis |
| IP adresa virtuálního počítače pro správu (MVM) | IP adresy MVM, které hostují nástroj PowerFlex Manager a služby správy. Jeden uzel datového serveru úložiště MVM (SDS) IP adresy MVM naleznete po přihlášení do uživatelského rozhraní nástroje PowerFlex Manager. Přejděte na System-Components>> MVM. Například 10.2xx.3xx.184, 10.2xx.3xx.185, 10.2xx.3xx.186 |
| Datový server úložiště (SDS) | Uzel Storage Data Server (SDS), který je hostitelem MVM. |
| IP adresa příchozího přenosu dat | Externí IP adresa pro rke2-ingress-nginx-controller (nástroj pro vyrovnávání zatížení/koncový bod příchozího přenosu dat) |
| Správa identit a přístupu zákazníků (CIAM) | Služby PowerFlex Customer Identity and Access Management pro OAuth2/OIDC |
| Poskytovatel služeb (SP) | Poskytovatel identity (IdP)|Poskytovatel služeb (na straně PowerFlex/Keycloak) a zprostředkovatel identity (Microsoft Azure Entra ID) |
Požadavky
K propojení Microsoft Azure Entra ID se zařízením PowerFlex se používá automatizační skript (oidc_azure.tar).
Skript je ve formátu souboru tar a je nutné ho stáhnout a zkopírovat do nástroje MVM:
Chcete-li zkopírovat oidc_azure. tar, musíte mít přístup správce k virtuálnímu počítači pro správu PowerFlex.
Zde je soubor: oidc_azure.tar
Příkazy je nutné spustit v níže uvedeném snímku obrazovky, protože exportované proměnné se v tomto procesu znovu použijí ve všech krocích a skriptech.
sudo -i

Co jednotlivé příkazy dělají?
- Značka '
kubectl get svc -A | grep "sso " | awk '{print $4}'"vrátí IP adresu clusteru služby jednotného přihlašování v clusteru Kubernetes. - Značka '
curl -k --location --request POST "https://${SSO_IP}:8080/rest/auth/login" --header 'Accept: application/json' --header 'Content-Type: application/json' --data '{"username": "admin","password": "Scaleio123!" }' | jq -r .access_token' se přihlásí do systému PowerFlex pomocí rozhraní REST API SSO A načte přístupový token (JWT), který se používá pro následná volání rozhraní API služeb PowerFlex. - A co je to za to,
kubectl get svc -A | grep -m1 rke2-ingress-nginx-controller | sort | awk '{print $5}''příkaz vrací externí IP adresu služby rke2-ingress-nginx-controller, což je obvykle IP adresa nástroje pro vyrovnávání zatížení nebo kontroleru příchozího přenosu dat používaná pro externí provoz.
Po spuštění těchto příkazů se exportují následující proměnné:
export SSO_IP=$(kubectl get svc -A | grep "sso " | awk '{print $4}')
export ASMUI_PASS=$(kubectl get secret pfxm-asmui-creds -o json -n powerflex \ | jq '.data | map_values(@base64d)' \ | jq -r '.["keycloak-password"]')
export PM_TOKEN=$(curl -k --location --request POST "https://${SSO_IP}:8080/rest/auth/login" \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --data "{\"username\": \"asmuiuser\",\"password\": \"$ASMUI_PASS\"}" | jq -r .access_token)
export IN_IP=$(kubectl get svc -A | grep -m1 rke2-ingress-nginx-controller | sort | awk '{print $5}')
1. Inicializace CIAM a konfigurace systému PowerFlex jako poskytovatele služeb (SP) OIDC
Tento krok je výchozím bodem v procesu integrace CIAM se systémem PowerFlex pomocí OpenID Connect (OICD). Je inicializována konfigurace SSO CIAM pro PowerFlex.
Rozhraní API: POST /rest/v1/sso-ciam/init
Příkaz:
curl -k -X POST https://$IN_IP/rest/v1/sso-ciam/init --header 'Accept: application/json' --header 'Content-Type: application/json' --header "Authorization: Bearer ${PM_TOKEN}"
Skript: ./init.sh
Výstup: Celé číslo, ID nájemce CIAM, tj. "2"
2. Konfigurace řešení PowerFlex s klávesnicí Keycloak jako poskytovatelem služby OIDC.
Tento krok zaregistruje a nakonfiguruje systém PowerFlex jako poskytovatele služeb OIDC pomocí platformy Keycloak (nebo jiného poskytovatele identity), čímž povolí zabezpečené ověřování SSO pomocí OpenID Connect.
Operace rozhraní API: PŘÍSPĚVEK /rest/v1/oidc-sp-config
Příkaz:
curl -kL -X POST --url https://$IN_IP/rest/v1/oidc-sp-config --header 'Content-Type: application/json' --header "Authorization: Bearer ${PM_TOKEN}" --data '{
"sp_id": "powerflex-$IN_IP",
"redirect_uri": "https://$IN_IP/auth/realms/powerflex/protocol/openid-connect/auth",
"logout_uri": "https://$IN_IP/auth/realms/powerflex/protocol/openid-connect/logout",
"required_claims": ["email"],
"keycloak_settings": {
"config": {
"clientAuthMethod": "client_secret_basic",
"pkceEnabled": "true",
"useJwksUrl": "true",
"validateSignature": "true"
},
"first_broker_login_flow_alias": "first broker login",
"post_broker_login_flow_alias": null,
"link_only": null,
"store_token": true,
"add_read_token_role_on_create": true,
"trust_email": true
},
"days_to_store_state_code_verifier": 1}'
Skript: ./add_oidc_sp.sh
Výstup (zkrácený): Nový poskytovatel služeb
{"id":"00000000-0000-0000-0000-000000000000","sp_id":"powerflex-10.247.39.179","redirect_uris":["https://10.247.39.179/auth/realms/powerflex/protocol/openid-connect/auth"],"logout_uri":"https://10.247.39.179/auth/realms/powerflex/protocol/openid-connect/logout" ... },
2.1 Uveďte poskytovatele služeb OIDC.
Tento krok načte aktuální konfiguraci poskytovatele služeb OIDC ze systému PowerFlex.
Příkaz:
curl -kL https://$IN_IP/rest/v1/oidc-sp-config --header 'Content-Type: application/json' --header "Authorization: Bearer ${PM_TOKEN}" | jq -r '.results[]'
Skript: ./list_oidc_sp.sh
Ukázkový výstup (zkrácený): Poskytovatel služeb vytvořený v předchozím kroku.
{"results":[{"id":"00000000-0000-0000-0000-000000000000","sp_id":"powerflex-10.247.39.179",...}]
3. Přidání certifikační autority do zařízení PowerFlex for CIAM services.
Tento krok zahrnuje informování systému PowerFlex o tom, které certifikační autoritě má důvěřovat při ověřování zabezpečené komunikace se systémem CIAM. Pro služby CIAM existují dva certifikáty:
- DigiCert je důvěryhodná certifikační autorita (CA). Služby Microsoft Azure (jako Microsoft Azure AD, koncové body OIDC a rozhraní API Microsoftu) používají k zabezpečení komunikace certifikáty SSL/TLS vydané společností DigiCert.
- Certifikáty GA2 (GlobalSign nebo podobné kořenové/zprostředkující) jsou součástí řetězu certifikátů, který ověřuje koncové body identity Microsoft Azure. Zajišťují:
- Adresa URL metadat OIDC (https://login.microsoftonline.com/...)(Externí odkaz) a koncové body tokenu jsou důvěryhodné.
- Zabezpečená komunikace HTTPS mezi systémem PowerFlex a Microsoft Azure IdP.
Tato operace zajišťuje, že CIAM důvěřuje koncovým bodům Microsoft Azure.
Níže uvedený příkaz používá soubory s certifikáty s kódováním PEM, kde jsou nové řádky nahrazeny znakem "\n". V podstatě je v takovém souboru pouze jeden řádek.
Například:
-----BEGIN CERTIFICATE-----
\nMIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBh\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\nd3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD\nQTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAwMDAwMDBaMGExCzAJBgNVBAYTAlVT\nMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j\nb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkqhkiG\n9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsB\nCSDMAZOnTjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97\nnh6Vfe63SKMI2tavegw5BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt\n43C/dxC//AH2hdmoRBBYMql1GNXRor5H4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7P\nT19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y7vrTC0LUq7dBMtoM1O/4\ngdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQABo2MwYTAO\nBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbR\nTLtm8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUw\nDQYJKoZIhvcNAQEFBQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/Esr\nhMAtudXH/vTBH1jLuG2cenTnmCmrEbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg\n06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIttep3Sp+dWOIrWcBAI+0tKIJF\nPnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886UAb3LujEV0ls\nYSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk\nCAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4=\n-
----END CERTIFICATE-----
Rozhraní API: POST /API/V1/CIAM/<ciam_id>/x509-certificates
Příkaz:
CA=`cat $1`
curl -kvvL -X POST https://$IN_IP//Api/V1/CIAM/<return_value_from_init_ciam>/x509-certificates --header "Authorization: Bearer ${PM_TOKEN}" --data-raw "
{
\"type\": \"CA\",
\"service\": \"ALL\",
\"certificate_format\": \"PEM\",
\"certificate\": \"$CA\"
}"
Skript: ./add_cert.sh <certificate_pem_file>
Ukázkový výstup (zkrácený):
cat digicert_ca.pem
-----BEGIN CERTIFICATE-----\nMIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBh\nMQs;wCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\nd3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD\nQTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAwMDAwMDBaMGExCzAJBgNVBAYTAlVT\nMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j\nb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkqhkiG\n9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsB\nCSDMAZOnTjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97\nnh6Vfe63SKMI2tavegw5BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt\n43C/dxC//AH2hdmoRBBYMql1GNXRor5H4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7P\nT19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y7vrTC0LUq7dBMtoM1O/4\ngdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQABo2MwYTAO\nBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbR\nTLtm8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUw\nDQYJKoZIhvcNAQEFBQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/Esr\nhMAtudXH/vTBH1jLuG2cenTnmCmrEbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg\n06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIttep3Sp+dWOIrWcBAI+0tKIJF\nPnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886UAb3LujEV0ls\nYSEY1QSteDwsOoBrp+uvFRTp2InBuThs4p
...
Fsiv9kuXclVzDAGySj4dzp30d8tbQk\nCAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4=\n-----END CERTIFICATE-----\n
delladmin@lglou184:~/oidc_testing> cat digicert_g2.pem
-----BEGIN CERTIFICATE-----\nMIIDjjCCAnagAwIBAgIQAzrx5qcRqaC7KGSxHQn65TANBgkqhkiG9w0BAQsFADBh\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\nd3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBH\nMjAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAwMDBaMGExCzAJBgNVBAYTAlVT\nMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j\nb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEcyMIIBIjANBgkqhkiG\n9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuzfNNNx7a8myaJCtSnX/RrohCgiN9RlUyfuI\n2/Ou8jqJkTx65qsGGmvPrC3oXgkkRLpimn7Wo6h+4FR1IAWsULecYxpsMNzaHxmx\n1x7e/dfgy5SDN67sH0NO3Xss0r0upS/kqbitOtSZpLYl6ZtrAGCSYP9PIUkY92eQ\nq2EGnI/yuum06ZIya7XzV+hdG82MHauVBJVJ8zUtluNJbd134/tJS7SsVQepj5Wz\ntCO7TG1F8PapspUwtP1MVYwnSlcUfIKdzXOS0xZKBgyMUNGPHgm+F6HmIcr9g+UQ\nvIOlCsRnKPZzFBQ9RnbDhxSJITRNrw9FDKZJobq7nMWxM4MphQIDAQABo0IwQDAP\nBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUTiJUIBiV\n5uNu5g/6+rkS7QYXjzkwDQYJKoZIhvcNAQELBQADggEBAGBnKJRvDkhj6zHd6mcY\n1Yl9PMWLSn/pvtsrF9+wX3N3KjITOYFnQoQj8kVnNeyIv/iPsGEMNKSuIEyExtv4\nNeF22d+mQrvHRAiGfzZ0JFrabA0UWTW98kndth/Jsw1HKj2ZL7tcu7XUIOGZX1NG\nFdtom/DzMNU+MeKNhJ7jitralj41E6Vf8PlwUHBHQRFXGU7Aj64GxJUTFy8bJZ91\n8rGOmaFvE7FBcf6IKshPECBV1/MUReXgRPTqh5Uykw7+U0b6LJ3/iyK5S9kJRaTe\npLiaWN0bfVKfjllDiIGknibVb63dDcY3fe0Dkhvld1927jyNxF1WW6LZZm6zNTfl\nMrY=\n-----END CERTIFICATE-----\n
--------------------------------------------------------------------------------------------------------------------------
./add_cert.sh digicert_ca.pem
{"id":"b5c3d51a-9161-4515-a741-4a197a348cf9","certificate":"-----BEGIN CERTIFICATE-----...\nMIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBh\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\nd3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD\nQTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAwMDAwMDBaMGExCzAJBgNVBAYTAlVT\nMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j\nb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkqhkiG\n9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsB\nCSDMAZOnTjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97\nnh6Vfe63SKMI2tavegw5BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt\n43C/dxC//AH2hdmoRBBYMql1GNXRor5H4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7P\nT19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y7vrTC0LUq7dBMtoM1O/4\ngdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQABo2MwYTAO\nBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbR\nTLtm8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUw\nDQYJKoZIhvcNAQEFBQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/Esr\nhMAtudXH/vTBH1jLuG2cenTnmCmrEbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg\n06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIttep3Sp+dWOIrWcBAI+0tKIJF\nPnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886UAb3LujEV0ls\nYSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk\nCAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4=\n-----END CERTIFICATE-----\n","subject":"C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert Global Root CA","common_name":"DigiCert Global Root CA","issuer":"C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert Global Root CA","organization":"DigiCert Inc","organizational_unit":"www.digicert.com","country":"US","valid_from_timestamp":"2006-11-10T00:00:00Z","valid_to_timestamp":"2031-11-10T00:00:00Z","key_usage":"Digital Signature, Cert Sign, CRL Sign","type":"CA","service":"ALL","is_self_signed":true,"is_current":true,"is_valid":true,"cert_fingerprint":"43:48:A0:E9:44:4C:78:CB:26:5E:05:8D:5E:89:44:B4:D8:4F:96:62:BD:26:DB:25:7F:89:34:A4:43:C7:* Connection #0 to host 10.247.39.179 left intact
01:61","version":3,"serial_number":10944719598952040374951832963794454346,"signature_algorithm":"RSA","signature_hash_algorithm":"SHA-1","public_key":"-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKP\nC3eQyaKl7hLOllsBCSDMAZOnTjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtx\nRuLWZscFs3YnFo97nh6Vfe63SKMI2tavegw5BmV/Sl0fvBf4q77uKNd0f3p4mVmF\naG5cIzJLv07A6Fpt43C/dxC//AH2hdmoRBBYMql1GNXRor5H4idq9Joz+EkIYIvU\nX7Q6hL+hqkpMfT7PT19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y7vrT\nC0LUq7dBMtoM1O/4gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOv\nJwIDAQAB\n-----END PUBLIC KEY-----\n"}
3.1 Ověřte, zda jsou certifikáty přidány a uvedeny v seznamu.
Tento krok ověří, zda jsou certifikáty přidány a uvedeny v seznamu.
Příkaz:
curl -kL https://$IN_IP/Api/V1/CIAM/2/x509-certificates --header 'Content-Type: application/json' --header "Authorization: Bearer ${PM_TOKEN}"
Poznámka: https://$IN_IP//Api/V1/CIAM/2/x509-certificate – zde je číslo 2 ze init.sh v kroku 1.
Skript: ./list_certs.sh
Ukázkový výstup (zkrácený):
{"results":[{"id":"4a4d7f6b-251c-41a6-b304-783ed6d5fbc2","certificate":"-----BEGIN ....-----END PUBLIC KEY-----\n"}]}
4. Registrace Microsoft Azure Entra ID jako služby OIDC (IdP)
Tento krok zaregistruje Microsoft Azure Entra ID jako externího poskytovatele identity pro PowerFlex pomocí OpenID Connect (OIDC), což uživatelům umožní ověřit se prostřednictvím Microsoft Azure, místo aby se spoléhali na místní přihlašovací údaje PowerFlex.
Proměnné:
- ID nájemníka: ID tenanta identifikuje tenanta Microsoft Azure Active Directory, do kterého patří zprostředkovatel identity. Najdete ho na stránce Přehled na domovské obrazovce aplikace v Microsoft Azure.
- KK_ID: ID KK identifikuje ID klienta aplikace Microsoft Azure.
- KK_SECRET: Tajný klíč KK identifikuje tajný klíč klienta Microsoft Azure.
Rozhraní api: POST /rest/v1/oidc-services
curl -kvvL --request POST \
--url "https://$IN_IP/rest/v1/oidc-services" \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer ${PM_TOKEN}" \
--data "{
\"name\": \"azure\",
\"is_enabled\": true,
\"idp_metadata_url\": \"https://login.microsoftonline.com/<Tenant_id>/v2.0/.well-known/openid-configuration\",
\"claims_mapper\": [
{ \"name\": \"email\", \"value\": \"email\" },
{ \"name\": \"given_name\", \"value\": \"firstName\" },
{ \"name\": \"preferred_username\", \"value\": \"username\" },
{ \"name\": \"family_name\", \"value\": \"lastName\" }
],
\"client_id\": \"$KK_ID\",
\"client_secret\": \"$KK_SECRET\",
\"scopes\": [\"openid\",\"profile\",\"email\",\"offline_access\"],
\"pkce_enabled\": true,
\"code_challenge_method\": \"S256\",
\"idp \"idp_type\": \"AzureEntraID\"KK_ID=b151947c-b514-4997-a369-a9b76f26b050
KK_SECRET=tk_8Q~QYTj1FQYN2chWovu.M5Ph3YnIVzLwRJcoZ
TENANT_ID=945c199a-83a2-4e80-9f8c-5a91be5752dd
curl -kL -X POST --url https://$IN_IP/rest/v1/oidc-services --header 'Content-Type: application/json' --header "Authorization: Bearer ${PM_TOKEN}" \
--data \
"{ \"name\": \"azure\", \"is_enabled\": true, \"idp_metadata_url\": \"https://login.microsoftonline.com/${TENANT_ID}/v2.0/.well-known/openid-configuration\",
\"claims_mapper\": [ { \"name\": \"email\", \"value\": \"email\"
},
{
\"name\": \"given_name\",
\"value\": \"firstName\"
},
{
\"name\": \"preferred_username\",
\"value\": \"username\"
},
{
\"name\": \"family_name\",
\"value\": \"lastName\"
}
],
\"client_id\": \"$KK_ID\",
\"client_secret\": \"$KK_SECRET\",
\"scopes\": [
\"openid\",
\"profile\",
\"email\",
\"offline_access\"
],
\"pkce_enabled\": true,
\"code_challenge_method\": \"S256\",
\"idp_type\": \"AzureEntraID\"
}"
Skript: ./add_oidc_service.sh
Ukázkový výstup (zkrácený):
{
"id": "a230b7b8-8f6c-47db-9327-2e48db8040a9",
"name": "azure",
"is_enabled": true,
"idp_metadata_url": "https://login.microsoftonline.com/945c199a-83a2-4e80-9f8c-5a91be5752dd/v2.0/.well-known/openid-configuration",
"idp_metadata_load_timestamp": "2025-11-14T16:00:40.356569216Z",
"idp_metadata": {
"issuer": "https://login.microsoftonline.com/945c199a-83a2-4e80-9f8c-5a91be5752dd/v2.0",
"...": "additional metadata fields"
},
"code_challenge_method": "S256",
"idp_type": "AzureEntraID",
"is_default": false
}
4.1 Vypíše službu OIDC.
V tomto kroku je uvedena služba OIDC.
Příkaz:
curl -kL https://$IN_IP/rest/v1/oidc-services --header 'Content-Type: application/json' --header "Authorization: Bearer ${PM_TOKEN}"
Scénář: list_oidc_service.sh
Příklad (zkrácený):
./list_oidc_service.sh
{"results":[{"id":"a230b7b8-8f6c-47db-9327-2e48db8040a9","name":"azure","is_enabled":true,"idp_metadata_url":"https://login.microsoftonline.com/945c199a-83a2-4e80-9f8c-5a91be5752dd/v2.0/.well-known/openid-configuration",..."idp_type":"AzureEntraID","is_default":false}]}
5. Nakonfigurujte adresu URL pro přesměrování v Microsoft Azure.
Tento krok zahrnuje nastavení Microsoft Azure tak, aby po úspěšném přihlášení odesílal uživatele do cíle označovaného jako adresa URL pro přesměrování.
Na portálu Microsoft Azure přejděte na Registrace aplikace → ověřování → identifikátory URI pro přesměrování a přidejte následující adresu URL:
https://< PFMP_IP>/auth/realms/powerflex/broker/<SERVICE_ID_AZURE>/endpoint
Například: https://10.247.39.179/auth/realms/powerflex/broker/a230b7b8-8f6c-47db-9327-2e48db8040a9/endpoint
- <> PFMP_IP je IP adresa nástroje PowerFlex Manager (v případě potřeby přeložte název hostitele)
- <> SERVICE_ID_AZURE je IdP z ID služby z kroku 4.
6. Nakonfigurujte deklarace identity tokenů v Microsoft Azure.
a) Přidání volitelných deklarací identity (token ID)
- Na portálu Microsoft Azure přejděte na Konfigurace tokenu → Přidat volitelnou deklaraci identity.
- V části Typ tokenu vyberte ID.
- V části Nárok zaškrtněte políčko vedle následujících atributů:
-
E-mail
-
family_name
-
given_name
-
preferred_username
-
- Klikněte na tlačítko Add.
b) Přidání skupinových nároků
- Na webu Microsoft Azure Portal přejděte na Konfigurace tokenu → Přidat deklarace identity skupiny.
- V části Upravit deklaraci identity skupin zaškrtněte políčko vedle skupin přiřazených k aplikaci.
- V části ID zaškrtněte políčko vedle položky ID skupiny.
- V části Přístup zaškrtněte políčko vedle ID skupiny.
- Klikněte na tlačítko Add.
Tato ID skupin později použijete pro mapování rolí PowerFlex v uživatelském rozhraní PowerFlex Manager.
7. Nakonfigurujte oprávnění rozhraní API v Microsoft Azure.
Tento krok zajistí, že PowerFlex bude mít správný přístup k chráněným zdrojům v systému Microsoft Azure.
- Na portálu Microsoft Azure přejděte na Oprávnění rozhraní API →Microsoft Graph.
- V části Požádat o oprávnění rozhraní API vyberte
- V části Požádat o oprávnění rozhraní API vyberte Uživatel → Číst.
- Klikněte na možnost Aktualizovat oprávnění.
8. (Volitelné) Přiřazení uživatelů nebo skupin v Microsoft Azure.
Tento krok uděluje příslušným jednotlivcům nebo týmům přístup k řešení PowerFlex přiřazením ke konkrétním rolím nebo skupinám v rámci služby Microsoft Azure Active Directory.
- Na portálu Microsoft Azure přejděte do části Podnikové aplikace → Uživatelé a skupiny.
- V části Zobrazovaný název zaškrtněte políčko vedle uživatele nebo skupiny a zkopírujte ID objektu.
ID objektu se používá pro mapování rolí na základě deklarací v systému PowerFlex.
9. (Volitelné) Přidání uživatele/skupiny v uživatelském rozhraní systému PowerFlex
Tento krok zahrnuje udělení přístupu v rámci systému PowerFlex přidáním příslušného uživatele nebo skupiny přímo do uživatele nástroje PowerFlex Manager, čímž je zajištěno, že se mohou přihlásit a používat systém podle přiřazených rolí a oprávnění.
- Přihlaste se do uživatelského rozhraní nástroje PowerFlex Manager.
- Přejděte do nabídky Nastavení → Správa uživatelů → Přidat vzdáleného uživatele/skupinu.
- Zadejte následující informace:
- Typ: skupina
- Zprostředkovatel: Azure
- Název skupiny: libovolný smysluplný název
- Název nároku: skupiny
- Role uživatele: Superuživatel
- Hodnota nároku: ID objektu z Microsoft Azure (krok 8)
10. Přidejte klienta do CIAM.
Tento krok přidá do CIAM klienta za účelem registrace systému PowerFlex, aby CIAM mohl určit, která aplikace požaduje ověření, kam se mají tokeny odesílat, jaká oprávnění aplikace potřebuje a které toky ověřování může použít.
Rozhraní api: POST /rest/v1/oauth2-clients
Příkaz:
curl -kL --request POST \
--url "https://$IN_IP/rest/v1/oauth2-clients" \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer ${PM_TOKEN}" \
--data "{
\"client_name\": \"azure_oidc_client\",
\"redirect_uris\": [\"\"],
\"authorization_code_flow\": false,
\"client_credentials_flow\": false,
\"token_exchange_enabled\": true,
\"offline_access_enabled\": true,
\"client_offline_session_idle\": 1,
\"client_offline_session_max\": 1,
\"client_security_level\": \"TRUSTED\"
Skript: ./addclient_ciam.sh
Příklad výstupu:
./addclient_ciam.sh
{"id":"77ce10cb-c40e-4c1e-b922-07014b5b6e7b","client_name":"azure_oidc_client","client_secret":"QXDtyVYO5l3Puj2ZMACz/MK+sTSOqDHy53oRhVkXiBc=","redirect_uris":[""],"authorization_code_flow":false,"client_credentials_flow":false,"signing_algorithm":"RS256","refresh_token_max_reuse":3,"access_token_expiration_duration":360,"token_exchange_enabled":true,"client_security_level":"TRUSTED","offline_access_enabled":true,"client_offline_session_idle":1,"client_offline_session_max":1
10.1 Ověření, zda je klient přidán, a to tak, že jej uvedete.
Tento krok ověří, zda je klient úspěšně přidán, a to výpisem všech existujících klientů.
Příkaz:
curl -kL https://$IN_IP/rest/v1/oauth2-clients --header 'Content-Type: application/json' --header "Authorization: Bearer ${PM_TOKEN}" | jq -r '.results[]'
Skript: ./list_clients_ciam.sh
Příklad:
./list_clients_ciam.sh
{
"id": "77ce10cb-c40e-4c1e-b922-07014b5b6e7b",
"client_name": "azure_oidc_client",
"redirect_uris": [
""
],
"authorization_code_flow": false,
"client_credentials_flow": false,
"signing_algorithm": "RS256",
"refresh_token_max_reuse": 3,
"access_token_expiration_duration": 360,
"token_exchange_enabled": true,
"client_security_level": "TRUSTED",
"offline_access_enabled": true,
"client_offline_session_idle": 1,
"client_offline_session_max": 1,
"num_failed_login_attempts": 0
}
10.2 Upravte klienta.
Tento krok aktualizuje existujícího přihlašovacího klienta v CIAM. Datová část by měla zůstat prázdná ({}). Tento příkaz přidá požadovaná mapování PowerFlex na klienta Keycloak.
Příkaz:
curl -k -X PATCH "https://$IN_IP/rest/v1/login-clients/$1" \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${PM_TOKEN}" \
--data '{}'
Skript: ./update_client.sh <ID_FROM_ADD_CLIENT_CIAM>
Příklad:
./update_client.sh 77ce10cb-c40e-4c1e-b922-07014b5b6e7b
{"id":"1c3dbd45-66bc-44c7-94ce-1aef3a282afc","name":"azure_oidc_client","client_id":"77ce10cb-c40e-4c1e-b922-07014b5b6e7b","is_enabled":true,"client_secret":null,"redirect_uris":[""],"web_origins":[""]}
11. Přidání aplikace do CIAM pro mapování výměny tokenů
Tento krok přidá aplikaci do CIAM, aby bylo možné povolit externí ověřování, autorizaci a zabezpečené toky identit.
Rozhraní api: POST /rest/v1/oauth2-token-exchanges
Povinné proměnné:
- LOCAL_CLIENT_ID: ID z addclient_ciam.sh (např. 77ce10cb-c40e-4c1e-b922-07014b5b6e7b)
- EXT_CLIENT_ID: ID aplikace (klienta) Microsoft Entra ID (např. 859c0721-cb0c-433c-a437-bd2d2462754f)
- METADATA: Adresa URL metadat aplikace Microsoft Azure (např. https://login.microsoftonline.com/< Tenant_id>/v2.0/.well-known/openid-configuration)
- IDP: ID služby OIDC (např. a230b7b8-8f6c-47db-9327-2e48db8040a9)
- ROLI: Role PowerFlex (např. SuperUser)
- PM_TOKEN: Nosný token rozhraní API
- IN_IP: Cílová hostitelská / IP adresa
Příkaz:
curl -kL -X POST "https://$IN_IP/rest/v1/oauth2-token-exchanges" \
-H "Content-Type: application/json" \
-H "clientId: $LOCAL_CLIENT_ID" \
-H "Authorization: Bearer ${PM_TOKEN}" \
--data @- <<EOF
{
"ciam_oauth2_client_id": "$LOCAL_CLIENT_ID",
"customer_client_id": "$EXT_CLIENT_ID",
"customer_metadata_url": "$METADATA",
"idp_service_id": "$IDP",
"static_roles": ["$ROLE"]
}
Skript: ./add_app.sh
11.1 Seznam ID aplikace
Tento krok načte ID aplikace a ověří jedinečný identifikátor klienta vyžadovaný pro podřízené operace autorizace a výměny tokenů.
Příkaz:
curl -kL "https://$IN_IP/rest/v1/oidc-services" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${PM_TOKEN}"
Skript:
./list_apps.sh
Příklad:
./list_apps.sh
{ "id": "f803da04-2979-49dc-9408-496f127639b4",
"ciam_oauth2_client_id": "77ce10cb-c40e-4c1e-b922-07014b5b6e7b",
"customer_client_id": "859c0721-cb0c-433c-a437-bd2d2462754f",
"customer_metadata_url": "https://login.microsoftonline.com/945c199a-83a2-4e80-9f8c-5a91be5752dd/v2.0/.well-known/openid-configuration",
"idp_service_id": "a230b7b8-8f6c-47db-9327-2e48db8040a9",
"static_roles": [
"SuperUser" ]
}
12. Mapování rolí v Keycloak (PowerFlex Realm)
Tento krok mapuje role ve sféře PowerFlex Keycloak tak, aby přiřazení rolí poskytovatele identity odpovídalo autorizačním požadavkům systému PowerFlex.
1. Přihlaste se do Keycloak pomocí následujícího koncového bodu: https://< PFMP_IP>/auth/admin/
Například: https://10.247.39.179/auth/admin/
Chcete-li se přihlásit ke Keycloaku, přihlašovací údaje lze získat níže
Příkaz:
kubectl get secret keycloak-admin-credentials -o json -n powerflex | jq '.data | map_values(@base64d)'
Skript: ./get_keycloak_creds.sh
Příklad:
./get_keycloak_creds.sh
{
"password": "sZFmHmfhjj",
"username": "keycloak"
}
2. V instanci Keycloak vyberte PowerFlex.
3. Klikněte na Uživatelé, vyberte ID uživatele a aktualizujte atributy tak, aby odpovídaly roli používané v CIAM (například SuperUser).
4. V části Mapování rolí ověřte, zda je role aktualizována.
13. Získání tokenu Microsoft Azure (heslo vlastníka prostředku, přihlašovací údaje / uživatelské jméno + heslo)
Existuje několik způsobů, jak získat token z Microsoft Azure AD. V tomto příkladu kroku se aplikace přihlašuje k Microsoft Entra ID (Azure AD) přímým odesláním uživatelského jména + hesla uživatele do koncového bodu tokenu, aby bylo možné získat token OAuth 2.0. Jedná se o udělení přihlašovacích údajů vlastníka prostředku (ROPC).
Příkaz:
curl -X POST https://login.microsoftonline.com/$TENANT_ID/oauth2/token -H 'Content-Type: application/x-www-form-urlencoded' -d "grant_type=password&client_id=$CLIENT_ID&client_secret=$CLIENT_SECRET&username=$USERNAME&password=$encoded_password&resource=$RESOURCE")
Skript:./get_azure_token.sh
Tip: Pokud chcete zajistit, aby byl token platný, přejděte do ladicího programu webového tokenu JSON (JWT) (externí odkaz).
14. Výměna tokenu Microsoft Azure za token PowerFlex (CIAM)
Tento krok vymění token Microsoft Azure za token PowerFlex CIAM, aby bylo možné volat rozhraní API PowerFlex.
Rozhraní api: POST /rest/v1/token
Proměnné:
- CIAM_CLIENT_ID – ID klienta z kroku Add the client to CIAM (krok 10)
- CIAM_CLIENT_SECRET – Tajný klíč klienta z kroku Přidání klienta do CIAM (krok 10)
- EXT_TOKEN – token z Microsoft Azure
Příkaz:
curl -kL -X POST https://$IN_IP/rest/v1/token \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header "ClientId: $CIAM_CLIENT_ID" \
--header "ClientSecret: $CIAM_CLIENT_SECRET" \
--data "grant_type=urn:ietf:params:oauth:grant-type:token-exchange" \
--data "subject_token=${EXT_TOKEN}" \
--data "subject_token_type=urn:ietf:params:oauth:token-type:jwt"
Scripts: ./token.sh (používá EXT_TOKEN proto odpovídajícím způsobem nastaví proměnnou prostředí)
Příklad výstupu (zkrácený):
{
"access_token": "ey...A",
"issued_token_type": "urn:ietf:params:oauth:token-type:access_token",
"token_type": "Bearer",
"expires_in": 1800,
"refresh_token": "ey...qA"
}
15. Ověření přístupu k rozhraní PowerFlex REST API
Tento krok potvrzuje, že token funguje, voláním koncového bodu PowerFlex REST. Využívá access_token z výstupu "token.sh", exportovaného jako env proměnná PM_TOKEN.
export PM_TOKEN=eyJhb...eN_A
Příkaz:
curl -k --location --request GET https://$IN_IP/Api/V1/Credential --header 'Content-Type: application/json' --header "Authorization: Bearer $PM_TOKEN"
{
"totalRecords" : 3,
"credentialList" : [ {
"link" : {
"title" : "root",
"href" : "getCredential/69087b0c-cce7-4be7-b154-e8a3019cc553",
"rel" : "self",
"type" : null
},
"credential" : {
"type" : "OSCredential",
"id" : "69087b0c-cce7-4be7-b154-e8a3019cc553",
....
"link" : null,. "link" : null,. "link" : null, "references" : {
"devices" : 0,
"policies" : 0
}
} ]
}
Referenční informace
Shrnutí sekvence API
- Inicializace CIAM pro PowerFlex
(/rest/v1/sso-ciam/init) - Konfigurace systému PowerFlex jako poskytovatele
služeb OIDC(/rest/v1/oidc-sp-config) - Přidání certifikátů pro služby
CIAM(DigiCert, GlobalSign, atd.) - Registrace Microsoft Azure Entra ID jako služby
OIDC(/rest/v1/oidc-services) - Konfigurace ID služby na kartě
Ověřování Microsoft Azure(Mapování koncového bodu zprostředkovatele) - Nastavení deklarací identity tokenů a skupin v Microsoft Azure
(Volitelné deklarace identity, oprávnění rozhraní API) - Přidání klienta OAuth2 do CIAM
(/rest/v1/oauth2-clients) - Přidání aplikace do CIAM pro výměnu
tokenů(/rest/v1/oauth2-token-exchanges) - Získání tokenu Microsoft Azure pro výměnu za token
PowerFlex(/rest/v1/token) - Ověření přístupu k rozhraním API PowerFlex REST
Příkazy k výměně tokenů
Volání rozhraní API PowerFlex pomocí tokenu Microsoft Azure Entra
Příkaz k výměně tokenu:
curl -kL -X POST https://$PFMP_IP/rest/v1/token \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header "ClientId: $CIAM_CLIENT_ID" \
--header "ClientSecret: $CIAM_CLIENT_SECRET" \
--data "grant_type=urn:ietf:params:oauth:grant-type:token-exchange" \
--data "subject_token=${AZURE_TOKEN}" \
--data "subject_token_type=urn:ietf:params:oauth:token-type:jwt" | jq '.'
Příklad:
curl -kL -X POST https://10.247.39.179/rest/v1/token \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header "ClientId: 77ce10cb-c40e-4c1e-b922-07014b5b6e7b" \
--header "ClientSecret: QXDtyVYO5l3Puj2ZMACz/MK+sTSOqDHy53oRhVkXiBc=" \
--data "grant_type=urn:ietf:params:oauth:grant-type:token-exchange" \
--data "subject_token=${AZURE_TOKEN}" \
--data "subject_token_type=urn:ietf:params:oauth:token-type:jwt" | jq '.'
Volání rozhraní API zařízení PowerFlex Manager s vyměněným tokenem
curl -kL 'https://10.247.39.179/api/v1/appliance' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICIzMkNrM2YwNEI5OG5pRENza19IVmZ3R..._dxDp9QGWdteptby-8aaA'
Volání rozhraní API bloku PowerFlex s vyměněným tokenem
curl -kL GET https://10.247.39.179/api/types/Volume/instances --header 'Content-Type: application/json' --header "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICIzMkNrM2YwNEI5OG5pRENza19IVmZ3R..._dxDp9QGWdteptby-8aaA "
[
{
"genType": "EC",
"mappedSdcInfo": [
{
"limitIops": null,
"limitBwInMbps": null,
"isDirectBufferMapping": null,
"sdcIp": "",
"sdcId": "15d47a2400010000",
"sdcName": "513fda498aaf35e883da34f6ac46480",
"nqn": "nqn.2014-08.org.nvmexpress:uuid:72f30442-1cf7-0f5b-129c-da4fae6a028b",
"accessMode": "ReadWrite",
"hostType": "NVMeHost"
}
],
"managedBy": "ScaleIO",
"originalExpiryTime": 0,
"retentionLevels": [],
"snplIdOfSourceVolume": null,
"volumeReplicationState": "UnmarkedForReplication",
"replicationJournalVolume": false,
"replicationTimeStamp": 0,
"name": "csivol-21ef5b460c",
"creationTime": 1763382058,
"storagePoolId": "0ebdb61000000000",
"dataLayout": "ErasureCoding",
"vtreeId": "97957f7d00000002",
"sizeInKb": 8388608,
"compressionMethod": "NotApplicable",
"volumeClass": "defaultclass",
"accessModeLimit": "ReadWrite",
"lockedAutoSnapshotMarkedForRemoval": false,
"snplIdOfAutoSnapshot": null,
"pairIds": null,
"useRmcache": false,
"volumeType": "ThinProvisioned",
"consistencyGroupId": null,
"ancestorVolumeId": null,
"notGenuineSnapshot": false,
"secureSnapshotExpTime": 0,
"lockedAutoSnapshot": false,
"autoSnapshotGroupId": null,
"timeStampIsAccurate": false,
"nsid": 3,
"id": "77d698a400000002",
"links": [
{
"rel": "self",
"href": "/api/instances/Volume::77d698a400000002"
},
{
"rel": "/dtapi/rest/v1/metrics/query",
"href": "/dtapi/rest/v1/metrics/query",
"body": {
"resource_type": "volume",
"ids": [
"77d698a400000002"
]
}
},
{
"rel": "/api/parent/relationship/vtreeId",
"href": "/api/instances/VTree::97957f7d00000002"
},
{
"rel": "/api/parent/relationship/storagePoolId",
"href": "/api/instances/StoragePool::0ebdb61000000000"
}
]
},
{
"genType": "EC",
"mappedSdcInfo": null,
"managedBy": "ScaleIO",
"originalExpiryTime": 0,
"retentionLevels": [],
"snplIdOfSourceVolume": null,
"volumeReplicationState": "UnmarkedForReplication",
"replicationJournalVolume": false,
"replicationTimeStamp": 0,
"name": "csivol-4ea9633592",
"creationTime": 1763380456,
"storagePoolId": "0ebdb61000000000",
"dataLayout": "ErasureCoding",
"vtreeId": "9795586d00000000",
"sizeInKb": 8388608,
"compressionMethod": "NotApplicable",
"volumeClass": "defaultclass",
"accessModeLimit": "ReadWrite",
"lockedAutoSnapshotMarkedForRemoval": false,
"snplIdOfAutoSnapshot": null,
"pairIds": null,
"useRmcache": false,
"volumeType": "ThinProvisioned",
"consistencyGroupId": null,
"ancestorVolumeId": null,
"notGenuineSnapshot": false,
"secureSnapshotExpTime": 0,
"lockedAutoSnapshot": false,
"autoSnapshotGroupId": null,
"timeStampIsAccurate": false,
"nsid": 1,
"id": "77d6719400000000",
"links": [
{
"rel": "self",
"href": "/api/instances/Volume::77d6719400000000"
},
{
"rel": "/dtapi/rest/v1/metrics/query",
"href": "/dtapi/rest/v1/metrics/query",
"body": {
"resource_type": "volume",
"ids": [
"77d6719400000000"
]
.
.
.
]
}
]