EducationSoftwareStrategy.com
StrategyCommunity

Knowledge Base

Product

Community

Knowledge Base

TopicsBrowse ArticlesDeveloper Zone

Product

Download SoftwareProduct DocumentationSecurity Hub

Education

Tutorial VideosSolution GalleryEducation courses

Community

GuidelinesGrandmastersEvents
x_social-icon_white.svglinkedin_social-icon_white.svg
Strategy logoCommunity

© Strategy Inc. All Rights Reserved.

LegalTerms of UsePrivacy Policy
  1. Home
  2. Topics

KB486418: When connecting to the Modeling service, the following error appears: Model Server internal error: Model Server internal error: lllegal base64 character: '~'


Yuyuan (Annie) Wu

Quality Engineer, Senior • MicroStrategy


This article details how to resolve an error that appears when connecting to the Modeling service.

Description

After upgrading to Strategy ONE (March 2024) or later, an error appears when connecting to the Modeling service.

ka0PW0000001VD3YAM_0EMPW000004Iv8o.jpeg

This error occurs for any operations that access the Modeling service. This includes opening a report in Strategy Library or editing objects (schema objects, metrics, prompts, etc.) in Workstation.
 

What is this happening?

To improve security, the identity token secret key size should be at least 512 bits and base64 encoded to meet the RFC7158 (3.2. HMAC with SHA-2 Functions) requirement starting in Strategy ONE (March 2024).
 

Workaround

In on-premise environments, the invalid base64 encoded secret key must be updated manually for all the related components. The components shown below consume this secret key as part of their workflow, so each component needs to be updated accordingly with a matched one.
 

  1. Paste the code shown below into a text editor and name the file
    generate_token.py.

    
    import os
    import base64
    import platform
    def generate_token():
        # Generate 64 bytes of random data (512 bits)
        random_bytes = os.urandom(64)
        # Encode the random bytes using base64
        encoded_token = base64.b64encode(random_bytes)
        # Convert bytes to string
        token = encoded_token.decode('utf-8')
        return token
    def main():
        token = generate_token()
        print("Generated Token:", token)
    if __name__ == "__main__":
        main()
    
     

  2. Generate a 512-bit secret key using the Python script you just created.
  3. Replace the secret key with the new key in the component's configuration file.
  4. Restart the component.

If your environment is clustered, repeat steps 3 and 4 on each clustered machine. The secret key must be identical on all cluster nodes.
 
Find the detailed configuration file path and configuration parameter name for each component below:
 

Help Topic
Modeling ServiceModeling Service Configuration PropertiesLibrary WebMicroStrategy Library Server Configuration PropertiesStrategy WebHow to Enable Seamless Login Between Web and LibraryCollaboration ServiceCollaboration Server Configuration Properties

Help Topic
Modeling ServiceModeling Service Configuration PropertiesLibrary WebMicroStrategy Library Server Configuration PropertiesStrategy WebHow to Enable Seamless Login Between Web and LibraryCollaboration ServiceCollaboration Server Configuration Properties

Help Topic
Modeling ServiceModeling Service Configuration PropertiesLibrary WebMicroStrategy Library Server Configuration PropertiesStrategy WebHow to Enable Seamless Login Between Web and LibraryCollaboration ServiceCollaboration Server Configuration Properties

Help Topic
Modeling ServiceModeling Service Configuration PropertiesLibrary WebMicroStrategy Library Server Configuration PropertiesStrategy WebHow to Enable Seamless Login Between Web and LibraryCollaboration ServiceCollaboration Server Configuration Properties

Help Topic
Modeling ServiceModeling Service Configuration PropertiesLibrary WebMicroStrategy Library Server Configuration PropertiesStrategy WebHow to Enable Seamless Login Between Web and LibraryCollaboration ServiceCollaboration Server Configuration Properties

Help Topic
Modeling ServiceModeling Service Configuration PropertiesLibrary WebMicroStrategy Library Server Configuration PropertiesStrategy WebHow to Enable Seamless Login Between Web and LibraryCollaboration ServiceCollaboration Server Configuration Properties

Help Topic
Modeling ServiceModeling Service Configuration PropertiesLibrary WebMicroStrategy Library Server Configuration PropertiesStrategy WebHow to Enable Seamless Login Between Web and LibraryCollaboration ServiceCollaboration Server Configuration Properties

Help Topic
Modeling ServiceModeling Service Configuration PropertiesLibrary WebMicroStrategy Library Server Configuration PropertiesStrategy WebHow to Enable Seamless Login Between Web and LibraryCollaboration ServiceCollaboration Server Configuration Properties

 


Comment

0 comments

Details

Knowledge Article

Published:

February 29, 2024

Last Updated:

April 8, 2024