in pkg/cloud/graph.go [116:141]
func (c *AzureClient) GetFederatedCredential(ctx context.Context, objectID, issuer, subject string) (models.FederatedIdentityCredentialable, error) {
mlog.Debug("Getting federated credential",
"objectID", objectID,
"issuer", issuer,
"subject", subject,
)
ficGetOptions := &applications.ItemFederatedidentitycredentialsFederatedIdentityCredentialsRequestBuilderGetRequestConfiguration{
QueryParameters: &applications.ItemFederatedidentitycredentialsFederatedIdentityCredentialsRequestBuilderGetQueryParameters{
// Filtering on more than one resource is currently not supported.
Filter: to.Ptr(getSubjectFilter(subject)),
},
}
resp, err := c.graphServiceClient.Applications().ByApplicationId(objectID).FederatedIdentityCredentials().Get(ctx, ficGetOptions)
if err != nil {
return nil, maybeExtractGraphError(err)
}
for _, fic := range resp.GetValue() {
if *fic.GetIssuer() == issuer {
return fic, nil
}
}
return nil, ErrFederatedCredentialNotFound
}